Cod sursa(job #2602407)
Utilizator | Data | 16 aprilie 2020 20:24:33 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.69 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int nr_zero(int n)
{
int p = 5, nrz = 0;
while(p <= n)
{
nrz = nrz + n / p;
p = p * 5;
}
return nrz;
}
int p, st, mij, dr, poz, nr;
int main()
{
f >> p;
st = 1;
dr = 10000000001;
while(st <= dr)
{
mij = (st + dr) / 2;
nr = nr_zero(mij);
if(nr < p)
st = mij + 1;
else
{
if(nr == p)
poz = mij;
dr = mij - 1;
}
}
if(!poz)
g << "-1";
else
g << poz;
return 0;
}