Cod sursa(job #1519885)

Utilizator pulseOvidiu Giorgi pulse Data 7 noiembrie 2015 23:27:08
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

int p;
long long LIM = pow(10, 10);

int zeroes(long long n)
{
    long long k = 5;
    int sum = 0;
    while (n / k)
    {
        sum += n / k;
        k *= 5;
    }
    return sum;
}

void binSearch(long long l, long long r)
{
    long long m, ans, x;
    ans = LIM;
    while (l <= r)
    {
        m = (l + r) >> 1;
        x = zeroes(m);
        if (x >= p)
        {
            if (x == p)
                ans = min(ans, m);
            r = m - 1;
        }
        else
            l = m + 1;
    }
    fout << ((ans < LIM) ? ans : -1);
}

int main()
{
    fin >> p;
    binSearch(1, LIM);
    return 0;
}