Cod sursa(job #2461171)
Utilizator | Hurjui Alexandru-Mihai hurjui12Alexandru | Data | 24 septembrie 2019 23:10:17 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int nrzero(int k)
{
int f = 5, s = 0;
while (f<=k)
{
s = s + k/f;
f = f*5;
}
return s;
}
int main()
{
int st = 1, dr = 2000000000, p, mij;
fin >> p;
while (st <= dr)
{
mij = (st+dr)/2;
if (p <= nrzero(mij))
dr = mij - 1;
else
st = mij + 1;
}
if (nrzero(st) != p)
fout << -1;
else
fout << st;
return 0;
}