Pagini recente » Cod sursa (job #1797912) | Cod sursa (job #2213689) | Cod sursa (job #2922384) | Cod sursa (job #2593148) | Cod sursa (job #1454377)
#include <fstream>
long trailingZeroes(long n)
{
long powOfFive = 5;
long divRes = n / powOfFive;
long zeroCount = 0;
while (divRes != 0)
{
zeroCount += divRes;
powOfFive *= 5;
divRes = n / powOfFive;
}
return zeroCount;
}
long lowestOkNumber(long reqZeroes)
{
for (long i = 0; ; i += 5)
{
int zeroes = trailingZeroes(i);
if (zeroes == reqZeroes)
{
return i;
}
else if (zeroes > reqZeroes)
{
return -1;
}
}
}
int main()
{
std::ifstream in("fact.in");
long num = 0;
in >> num;
in.close();
std::ofstream out("fact.out");
out << num == 0 ? 1 : lowestOkNumber(num);
out.close();
}