Cod sursa(job #2399169)

Utilizator AndreiAlexandru2k3Ciucan Andrei Alexandru AndreiAlexandru2k3 Data 7 aprilie 2019 03:08:20
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");

long long p;

long long verif (long long n)
{
    long long  sum = 0;
    long long  fact = 5;
    while(n >= fact)
    {
        sum += n / fact;
        fact = 5 * fact;
    }
    if(sum > p)
        return 1;
    if(sum < p)
        return -1;
    if(sum == p)
        return 0;
}
int main()
{
    long long sol = -1;
    f >> p;
    long long p = 1;
    long long u = 500000000;
    if(p == 0)
    {
        cout << '1' << '\n';
        return 0;
    }
    while(p <= u)
    {
        long long m = (p + u) / 2;
        if(verif(m) == 1)
        {
            u = m - 1;
        }
        else if(verif(m) == -1)
            p = m + 1;
        else if(verif(m) == 0)
        {
            sol = m;
            u = m - 1;
            //break;
        }
    }
    g << sol << '\n';
    return 0;
}