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 JAVA (judge verdict: Accepted)

import java.util.*;
public class Main{
    public static void main(String[]args){
	new Main().run();
    }
    Scanner sc = new Scanner(System.in);
    long n;
    int count;
    long lg = 2000000000;

    void run(){
	while(sc.hasNext()){
	    n = sc.nextLong();
	    if(n!=0) solve();
	}
    }

    void solve(){
	count = 0;
	long fac = 1;
	while(n>0){
	    long a = n;
	    while(a%10 == 0){
		a = a/10;
		count++;
		//System.out.println(a+"**"+count);
	    }
	    fac = fac*(a%lg);
	    while(fac%10==0){
		fac = fac/10;
		count++;
	    }
	    fac = fac%lg;
	    //System.out.println(fac+" "+count);
	    n--;
	}
	
	System.out.println(count);
    }
}