Cod sursa(job #361112)
Utilizator | Licker Nandor nando | Data | 3 noiembrie 2009 19:41:57 |
---|---|---|---|
Problema | Factorial | Scor | 65 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <cstdio>
int f(int a){
if(a==1)
return 1;
else return a*f(a-1);
}
int nfive(int a){
int nf=0;
while(a%5==0&&a!=0){
a/=5;
nf++;
}
return nf;
}
int main(){
int P,N=0;
FILE *fin,*fout;
fin=fopen("fact.in","r");
fout=fopen("fact.out","w+");
fscanf(fin,"%u",&P);
fclose(fin);
if(P==0){
N=1;
}else{
int tf=0,n,i=1;
while(tf<P){
n=i*5;
if(i%5){
tf++;
}else{
tf+=nfive(i)+1;
}
i++;
}
if(tf==P){
N=n;
}else{
N=-1;
}
}
fprintf(fout,"%u",N);
fclose(fout);
}