Cod sursa(job #24428)
| Utilizator | Data | 2 martie 2007 12:15:23 | |
|---|---|---|---|
| Problema | Factorial | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 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);
valid=0;
if(p==0)fprintf(g,"%lld",1);
else
{
i=1;
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;
if(valid==1)fprintf(g,"%lld",k);
else fprintf(g,"%lld",-1);
}
fclose(f);
fclose(g);
return 0;
}