Cod sursa(job #2623708)

Utilizator andreizZenoveiov Andrei andreiz Data 3 iunie 2020 16:58:34
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb

#include <fstream>

using namespace std;

ofstream g("fact.out");

ifstream f("fact.in");

int p;

long long nr0;

int main()

{

    f>>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 > 0 )

    {

        rez += ( aux / 5 );

        aux /= 5;

    }

    if( rez == p )

        g<<st;

    else

        g<<-1;

}