CodeForces 633B A Trivial Problem

传送门:http://codeforces.com/problemset/problem/633/B

 

题意:给你一个常数m,要你找出几个数,这几个数的阶乘的最后m位

都是0.

显然 末尾有0 一定能除以10 10可以换成5*2的形式,

那么我们就可以找5的倍数,(如果有5出现 也一定有2)

 

————————————————————————————————————

渣渣之见,随便转载。

#include<cstdio>
int main()
{
    long long n,k=0;       // 看i阶乘的时候 5有几个 比如25 就有 5*5 4*5 3*5 2*5 5,6个5 
    scanf("%I64d",&n);
    for(int i=5;;i=i+5)
    {
        long long temp=i;
        while(temp%5==0)
        {
            temp /= 5 ;
            k++;
        }
        if(k>=n)
            if(k==n)
            {
                printf("5\n");
                printf("%d %d %d %d %d",i
                        ,i+1,i+2,i+3,i+4 );
                break;
            }
            else
            {
                printf("0");
                break;
            } 
    }
}

 

posted @ 2016-03-15 23:31  后知后觉丶  阅读(165)  评论(0编辑  收藏  举报