Cod sursa(job #2555083)

Utilizator ViAlexVisan Alexandru ViAlex Data 23 februarie 2020 18:09:18
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<bits/stdc++.h>
using namespace std;


long long n;
ifstream in("fact.in");
ofstream out("fact.out");

#define MAX 100000000000



long long get_zero_in_factorial(long long last)
{
    long long div=5;
    long long result=0;

    while(div<=last)
    {
        result+=last/div;
        div*=5;
    }
    return result;
}

int solve()
{

    long long left=1,right=MAX;
    long long to_return=-1;


    while(left<right)
    {


        long long middle=(left+right)/2;
        long long here=get_zero_in_factorial(middle);

        if(n<=here)
        {
            right=middle;
        }
        else if(n>here)
        {
            left=middle+1;
        }
    }

    if(get_zero_in_factorial(left)==n)
        return left;
    return -1;
}

int main()
{
    in>>n;
    out<<solve();
}