Cod sursa(job #3174617)

Utilizator mirceamaierean41Mircea Maierean mirceamaierean41 Data 25 noiembrie 2023 00:47:36
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <iostream>
#include <limits.h>
using namespace std;

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

typedef long long ll;
const ll MAX = 1e15 + 1;

ll countZeroes(ll val)
{
    if (val == 0)
        return 1;
    ll cnt = 0;
    for (ll i = 5; i <= val; i *= 5)
        cnt += val / i;
    return cnt;
}

ll binSearch(long long val)
{
    ll left = 1, right = MAX, res = MAX;
    while (left <= right)
    {
        ll mid = (left + right) / 2;
        ll q = countZeroes(mid);
        if (q >= val)
        {
            if (q == val && mid < res)
                res = mid;
            right = mid - 1;
        }
        else
            left = mid + 1;
    }
    return res;
}

int main()
{
    long long n;
    fin >> n;
    fout << binSearch(n);
    return 0;
}