Cod sursa(job #1454377)

Utilizator PatrunjeluMarginean Bogdan Alexandru Patrunjelu Data 26 iunie 2015 12:45:23
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#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();
}