Cod sursa(job #2756614)

Utilizator andreiiorgulescuandrei iorgulescu andreiiorgulescu Data 1 iunie 2021 20:06:20
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

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

long long nr0(long long x)
{
    long long i,s = 0;
    for (i = 5; i < x; i *= 5)
        s += x / i;
    return s;
}

long long cauta(long long p)
{
    long long st = 1,dr = 1e18,mij,x;
    while (st <= dr)
    {
        mij = (st + dr) / 2;
        x = nr0(mij);
        if (x < p)
            st = mij + 1;
        else
            dr = mij - 1;
    }
    if (nr0(st) == p)
        return st;
    else if (nr0(dr) == p)
        return dr;
    else
        return -1;
}

int main()
{
    long long p;
    in >> p;
    out << cauta(p);
    return 0;
}