Cod sursa(job #2650147)

Utilizator IRadu1529Radu Ionescu IRadu1529 Data 17 septembrie 2020 16:08:14
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <deque>
#include <algorithm>

using namespace std;

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

int NMax = 1000000001;

long long zerouri(long long n)
{
    // Initialize result
    long long count = 0;

    // Keep dividing n by powers of
    // 5 and update count
    for (long long i = 5; n / i >= 1; i *= 5)
        count += n / i;

    return count;
}

int main()
{
    int n;

    fin >> n;

    long long st, dr, N;
    int Solution = -1;

    st = 1;
    dr = NMax;

    while (st <= dr)
    {
        N = (dr + st) / 2;

        int ct = zerouri(N);

        if (ct == n)
        {
            Solution = N;

            dr = N - 1;

            continue;
        }

        if (ct < n)
            st = N + 1;

        else
            dr = N - 1;
    }

    fout << Solution;
}