Cod sursa(job #660311)
| Utilizator | Data | 12 ianuarie 2012 10:02:53 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int hi, lo, mij, p;
int nr_zer(int nr)
{
unsigned int y = 0, c = 5;
while(nr>=c)
{
y+=nr/c;
c*=5;
}
return y;
}
int main()
{
in >> p;
lo = 1, hi = 5*p; while(lo <= hi )
{
mij = lo+(hi-lo)/2;
if(nr_zer(mij) < p)
lo = mij+1;
else hi = mij-1;
}
if(nr_zer(lo) != p)
out << -1;
else out << lo;
}