Pagini recente » Cod sursa (job #1239500) | Cod sursa (job #1556434) | Cod sursa (job #94163) | Cod sursa (job #318643) | Cod sursa (job #807573)
Cod sursa(job #807573)
#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=100000000;
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);
if(p==0)
fprintf(g,"%ld",1);
else{
long rez=factorial();
if(rez>0)
rez=rez-rez%5;
fprintf(g,"%ld",rez);
}
fclose(f);
fclose(g);
return 0;
}