Cod sursa(job #288431)
| Utilizator | Data | 25 martie 2009 19:47:06 | |
|---|---|---|---|
| Problema | Factorial | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <fstream.h>
ifstream f("fact.in");
ofstream g("fact.out");
long p;
long fact (long n)
{ long nr_0=0,aux;
for (long i=5; i<=n; i+=5)
{ aux=i;
while (aux%5==0)
{ nr_0++; aux/=5; } }
return nr_0;
}
long caut_bin (long x)
{ long hi,lo,mid;
for (lo=1, hi=1000000; lo <= hi; )
{ mid=lo+(hi-lo)/2;
if (x<fact(mid)) hi=mid-1;
else if (x>fact(mid)) lo=mid+1;
else return mid-1;
}
return -1;
}
int main ()
{ f>>p;
g<<caut_bin(p);
return 0;
} 