Cod sursa(job #715996)
| Utilizator | Data | 18 martie 2012 00:44:51 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <fstream>
#include <iostream>
using namespace std;
long zerouri(long m)
{
long c=5,z=0;
while (m/c) {z+=m/c; c*=5;}
return z;
}
int main()
{
int ok=0;
long p,z,m,a=1,b=1e9;
ifstream f;
ofstream g;
f.open("fact.in");
f>>p;
f.close();
g.open("fact.out");
if (p==0) g<<1;
else {
while (a<b-1) {m=(a+b)/2;
z=zerouri(m);
if (z==p) {ok=1; break;}
else if (z<p) a=m;
else b=m;
}
if (ok==1) g<<m-m%5;
else g<<-1;
}
g.close();
return 0;
}
