Cod sursa(job #1443237)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 27 mai 2015 12:10:27
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");

int P;

int nr5(int X)
{
    int nr = 0;
    while (X)
    {
        nr += X/5;
        X /= 5;
    }
    return nr;
}

int Solve(int P)
{
    int L,R,M;

    R = 1 << 20;
    L = 1;

    while (L < R)
    {
        M = (L + R) / 2;
        int nr = nr5(M);

        if (nr < P) L = M+1; else R = M;
    }
    return (nr5(L) == P) ? L : (nr5(R) == P) ? R : -1;
}

int main()
{
    fin >> P;
    fout << Solve(P);
    return 0;
}