Cod sursa(job #2649853)

Utilizator redstonegamer22Andrei Ion redstonegamer22 Data 16 septembrie 2020 17:20:55
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

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

long long nr_zero(long long N)
{
    long long nr_zeros = 0;
    while(N)
    {
        nr_zeros += N/5; N /= 5;
    }

    return nr_zeros;
}

bool ok(long long N, long long P)
{
    return nr_zero(N) < P;
}

long long bin(long long P)
{
    long long N = 0;
    for(long long step = (1LL<<62); step > 0; step >>= 1)
    {
        //cout << step << endl;
        if(ok(N + step, P)) N += step;
    }
    return N + 1;
}

int main()
{
    long long P; in >> P;

    if(nr_zero(bin(P)) == P) out << bin(P);
    else out << "-1";
}