Cod sursa(job #1443239)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 27 mai 2015 12:15:18
Problema Factorial Scor 100
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 = 1000000000;
    L = 1;

    while (R - L > 1)
    {
        M = (L + R) / 2;
        int nr = nr5(M);

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

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