Cod sursa(job #2524508)

Utilizator KlinashkaDiacicov Calin Marian Klinashka Data 15 ianuarie 2020 20:21:20
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;

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

bool found;
int P;
long long N, stanga=1, dreapta=100000000, k, pow, middle;

int main()
{
    fin>>P;
    if(P==0)
    {
        found=true;
        fout<<1;
    }
    while(stanga<=dreapta && !found)
    {
        middle=(stanga+dreapta)/2;
        k=middle;
        pow=5;
        while(middle/pow)
        {
            k+=middle/pow;
            pow*=5;
        }
        if(k==P)
        {
            found=true;
            fout<<5*middle;
        }
        if(k<P)
            stanga=middle+1;
        if(k>P)
            dreapta=middle-1;
    }

    if(!found)
        fout<<-1;
    return 0;
}