Cod sursa(job #1142326)
Utilizator | Data | 13 martie 2014 18:37:44 | |
---|---|---|---|
Problema | Factorial | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p, i, j, nr;
long fact(int n) {
int nr=0, p=5;
while(p<=n) {
nr+=n/p;
p*=5;
}
return nr;
}
int main()
{
f>>p;
if (p==0)
g<<1<<endl;
else if (p>90000000)
g<<-1;
else {
int n=5*p;
long long m=fact(n), mij, s=1;
while (m!=p) {
mij=(s+n)/2;
mij=(mij/5)*5;
m=fact(mij);
if (m<p)
s=mij;
else
n=mij;
}
g<<n<<endl;
}
f.close();
g.close();
return 0;
}