d122

輸入說明 :

输入档可能有大量的数据。 每一个输入档输入一个不算很大的数 n (请用 longint)。

輸出說明 :

输出 n!的末尾零的个数。

有一個0表示,有一個10的因數,10是2*5,

階層是連續的數字相乘,所以每兩個數字就會有2

因此只要算有幾個五就好了

比如說100!

100/5=20 表示有一個5為因數的數字有20個

但是25,50,75,100 雖然它們有被算進20裡面,但是它們有兩個5 100/25=4 表示有兩個5為因數的數有4個

所以1~100相乘總共有24個5

代表有24個零

#include<stdio.h>
int main()
{
    long long int n;

    while(scanf("%d",&n)!=EOF)
    {
        long long int sum= 0;
        long long int i;

        for(i=5; i<=n; i*=5)
        {
            sum += n/i;
        }

        printf("%d\n",sum);
    }
}