Problem:
階乗 II

n! = n × (n − 1) × (n − 2) × ... × 3 × 2 × 1

を n の階乗といいます。例えば、12 の階乗は

12! = 12 × 11 × 10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1 = 479001600

となり、末尾に 0 が 2 つ連続して並んでいます。

整数 n を入力して、n! の末尾に連続して並んでいる 0 の数を出力するプログラムを作成してください。ただし、n は 20000 以下の正の整数とします。

Input

複数のデータが与えられます。各データに n (n ≤ 20000) が１行に与えられます。n が 0 の時入力の最後とします。

データの数は 20 を超えません。

Output

各データに対して n! の末尾に連続して並んでいる 0 の数を１行に出力して下さい。

Sample Input

2
12
10000
0

Output for the Sample Input

0
2
2499

Solution in C (judge verdict: Time Limit Exceeded)

#include <stdio.h>
#include <math.h>

int main(){
	unsigned long long int a, b, count, i, c;
	while(scanf("%d", &a) != 0){
		if(a == 0) break;
		b = 1;
		count = 0;
		for(i = 2; i <= a; i++){
			c = i;
			while(c % 10 == 0){
				if(c % 10 != 0) break;
				count++;
				c /= 10;
			}
			b *= c;
			while(b % 10 == 0){
				if(b % 10 != 0) break;
				count++;
				b /= 10;
			}
		}
		printf("%d\n", count);
	}
	return 0;
}