Cod sursa(job #520751)
| Utilizator | Data | 10 ianuarie 2011 11:32:54 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
FILE *f=fopen("fact.in","r");
FILE *g=fopen("fact.out","w");
int P;
int nr0(int x){
int nr=0,p5=5;
while(x>=p5){
nr+=x/p5;
p5*=5;
}
return nr;
}
int main(void){
int register i,j;
fscanf(f,"%d",&P);
fclose(f);
int register p,u;
p=1;u=5*P;
while(p<=u){
int register m=p+(u-p)/2;
if(nr0(m)>=P)
u=m-1;
else
p=m+1;
}
if(nr0(p)==P)
fprintf(g,"%d",p);
else
fprintf(g,"-1");
fclose(g);
return 0;
}