Cod sursa(job #2336540)

Utilizator radu_dumitruDumitru Radu Cosmin radu_dumitru Data 5 februarie 2019 11:02:51
Problema Factorial Scor 25
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;
ifstream cin ("fact.in");
ofstream cout ("fact.out");

int c;
long long powe;

long long last(long long nr2)
{
    c = 0;
    powe = 5;
    while(powe <= nr2)
    {
        c += nr2 / powe;
        powe *= 5;
    }
    return c;
}

long long t, poz;
long long cb (long long nr)
{
    poz = 0;
    for (t = 1 << 20; t > 0; t = t >> 1)
    {
        if (last(poz + t) <= nr)
            poz += t;
    }
    if (last(poz) == nr)
    {
        while (last(poz) == nr)
            poz--;
        return poz+1;
    }
    else return -1;
}

int main()
{
    long long p;
    cin >> p;
    if (p == 0)
    {
        cout << 1;
        return 0;
    }
    cout << cb(p);
    return 0;
}