Cod sursa(job #707870)
| Utilizator | Data | 6 martie 2012 08:45:30 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <stdio.h>
#warning problema aceasta e prea usoara
long i,j,n,m,k,s,t,r,p;
FILE *f,*g;
long cauta(long x,long y)
{
long au;
m=((x+y)/2)*5;r=5;k=0;
while(m>=r){k+=m/r;r*=5;}
if(k<p){au=cauta(m/5,y);}
if(k>p){au=cauta(x,m/5);}
if(k==p){au=m;}
return au;
}
int main()
{
f=fopen("fact.in","r");
g=fopen("fact.out","w");
fscanf(f,"%ld",&p);
n=cauta(0,100000000);
n=(n/5)*5;
if(n){fprintf(g,"%ld",n);}
else{fprintf(g,"1");}
return 0;
}
