Pagini recente » Cod sursa (job #1423602) | Cod sursa (job #12953) | Cod sursa (job #901552) | Cod sursa (job #2414493) | Cod sursa (job #807588)
Cod sursa(job #807588)
#include<stdio.h>
long int nrzero(long int n){
long int nr=0;
if(n<5)
return 0;
while(n>=1){
nr+=n/5;
n=n/5;
}
return nr;
}
long int p;
long int factorial(){
long int l=0; long int r=1000000000L;
if(p==0)
return 1;
while(l<=r){
long int m=(l+r)/2;
long int nm=nrzero(m);
if(nm==p)
return m;
if(nm>p)
r=m-1;
else
l=m+1;
}
return -1;
}
int main(){
FILE *f=fopen("fact.in","r");
FILE *g=fopen("fact.out","w");
fscanf(f,"%ld",&p);
long int rez=1;
if(p==0)
fprintf(g,"%ld",rez);
else{
rez=factorial();
if(rez>0)
rez=rez-rez%5;
fprintf(g,"%ld",rez);
}
fclose(f);
fclose(g);
return 0;
}