Cod sursa(job #807558)
| Utilizator | Data | 4 noiembrie 2012 22:12:41 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include<stdio.h>
long nrzero(long n){
long nr=0;
while(n>1){
nr+=n/5;
n=n/5;
}
return nr;
}
long p;
long factorial(long l, long r){
long m=(l+r)/2;
long nm=nrzero(m);
if(nm==p)
return m;
if(nm>p)
return factorial(l,m-1);
return factorial(m+1, r);
}
int main(){
FILE *f=fopen("fact.in","r");
FILE *g=fopen("fact.out","w");
fscanf(f,"%ld",&p);
if(p==0)
fprintf(g,"%ld",1);
else
fprintf(g,"%ld",factorial(1,1000000)/5*5);
fclose(f);
fclose(g);
return 0;
}
