Test Message

d122: Oh! My Zero!!

內容

階乘運算是很令人頭疼的,因此我們要想方設法地把它簡化。


輸入

輸入檔可能有大量的數據。
每一個輸入檔輸入一個不算很大的數 n (請用 longint)。

1
2
10

輸出

輸出 n!的末尾零的個數。

0
0
2


解題思路

數字尾端要出現 0 必須是 10 的倍數,而要產生 10 的倍數就必須要有 1 個 5 和 1 個偶數,偶數在階層出現頻率一定比 5 還高,所以簡化下來答案算該數在因式分解時 5 的次方項。


完整程式碼

AC (2ms, 100KB)
#include <stdio.h>

int main()
{
int n, ans;
while (scanf(" %d", &n) == 1)
{
ans = 0;
while (n /= 5)
ans += n;
printf("%d\n", ans);
}
return 0;
}