Cod sursa(job #1603294)
Utilizator | Data | 17 februarie 2016 12:52:08 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
using namespace std;
int p, s, d, m, z, minim = 2e9;
int zerouri (int n)
{
int z = 0;
while (n >= 5)
z += n/5, n /= 5;
return z;
}
int main ()
{
ifstream fi("fact.in");
ofstream fo("fact.out");
fi >> p;
s = 1, d = 2e9;
while (s <= d)
{
m = (s+d)/2;
z = zerouri(m);
if (z == p)
minim = min(minim, m);
z < p ? s = m+1 : d = m-1;
}
minim == 2e9 ? fo << -1 : fo << minim;
return 0;
}