Cod sursa(job #800959)
Utilizator | Dragos Martac Master011 | Data | 22 octombrie 2012 22:45:59 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <stdio.h>
int zero(int n){
int r=0;
while(n>=5){
r+=n/5;
n/=5;
}
return r;
}
int cout(int p){
int i=0,pas=1<<29;
while(pas!=0){
if(zero(i+pas)<p)
i+=pas;
pas/=2;
}
return i+1;
}
int main(){
int p,r;
FILE *fin,*fout;
fin=fopen("fact.in","r");
fout=fopen("fact.out","w");
fscanf(fin,"%d",&p);
r=cout(p);
if(zero(r)==p)
fprintf(fout,"%d",r);
else fprintf(fout,"-1");
return 0;
}