Cod sursa(job #769901)
Utilizator | Data | 21 iulie 2012 12:02:52 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <fstream>
using namespace std;
int m, z, p, u, P;
int zero(int x) {//in cati de 0 se termina x!
int p5 = 5;
int s = 0;
while (p5 <= x) {
s += x/p5;
p5 *= 5;
}
return s;
}
int main() {
ifstream f("fact.in");
ofstream g("fact.out");
f>>P;
p = 1; u = 5*P;
while (p<=u) {
m = (p+u)/2;
z = zero(m);
if (z >= P)
u = m-1;
else
p = m+1;
}
if (zero(p) == P)
g<<p;
else
g<<-1;
return 0;
}