Cod sursa(job #2623705)

Utilizator andreizZenoveiov Andrei andreiz Data 3 iunie 2020 16:56:47
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;

ofstream fout("fact.out");

ifstream fin("fact.in");

int p;

long long nr0;

int main()

{

    fin>>p;

    long long st = 1;

    long long dr = 5e8;

    while( st <= dr )

    {

        long long aux = ( st + dr ) / 2;

        long long rez = 0;

        while( aux >= 0 )

        {

            rez += ( aux / 5 ); /// n/5 + n/25 + n/125 + ...

            aux /= 5;

        }

        if( rez >= p )

            dr = ( st + dr ) / 2 - 1;

        else

            st = ( st + dr ) / 2 + 1;

    }

    long long aux = st;

    long long rez = 0;

    while( aux >= 5 )

    {

        rez += ( aux / 5 );

        aux /= 5;

    }

    if( rez == p )

        fout<<st;

    else

        fout<<-1;

}