Cod sursa(job #2791537)
Utilizator | Papuc Stefan dotyzebra775 | Data | 30 octombrie 2021 17:44:22 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int ct0(int n)
{
int d = 5, ct = 0;
while(d <= n)
{
ct += n / d;
d *= 5;
}
return ct;
}
int main()
{
int st, dr, mij;
int sol = -1;
fin >> p;
st = 1; dr = 1000000005;
while(st <= dr)
{
mij = (st + dr) / 2;
int nr = ct0(mij);
if(nr == p)
{
sol = mij;
dr = mij - 1;
}
else if(nr > p)
dr = mij - 1;
else
st = mij + 1;
}
fout << sol;
return 0;
}