Cod sursa(job #24422)
Utilizator | Dragos Dumitrescu kyrk_dd | Data | 2 martie 2007 11:58:20 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<stdio.h>
main()
{
long long n=1000000000;
long long p,i,k,j,s,sp,valid,x;
FILE *f,*g;
f=fopen("fact.in","r");
g=fopen("fact.out","w");
fscanf(f,"%lld",&p);
if(p==0)fprintf(g,"%lld",1);
else
{
i=1;
valid=0;
do{
k=(n+i)/2;
s=0;
sp=5;
do{
s+=k/sp;
x=k/sp;
sp*=5;
}while(x>0);
if(s==p)valid=1;
else
{ if(s>p) n=k;
else i=k;
}
}while(valid!=1);
k/=5;k*=5;
fprintf(f,"%lld",k);
}
fclose(f);
fclose(g);
return 0;
}