Pagini recente » Cod sursa (job #1364365) | Cod sursa (job #644338) | Cod sursa (job #1356423) | Cod sursa (job #1766194) | Cod sursa (job #3152905)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int nzero(int p)
{
int fact5 = 5, fact2 = 2, ans2 = 0, ans5 = 0;
while(fact5 <= p)
{
ans5 += p / fact5;
fact5 *= 5;
}
while(fact2 <= p)
{
ans2 += p / fact2;
fact2 <<= 1;
}
return min(ans2, ans5);
}
int main()
{
int p;
fin >> p;
int st = 0, dr = 1e8 + 5, sol = -1;
while(st <= dr)
{
int mij = (st + dr) / 2, cntzero = nzero(mij);
if(cntzero >= p)
{
if(cntzero == p)
sol = mij;
dr = mij - 1;
}
else
st = mij + 1;
}
if(p == 0)
fout << 1;
else
fout << sol;
return 0;
}