Cod sursa(job #2609201)

Utilizator vlasiuflaviusVlasiu Flavius vlasiuflavius Data 2 mai 2020 12:23:04
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 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 > 0 )
    {
        rez += ( aux / 5 );
        aux /= 5;
    }
    if( rez == p )
        fout<<st;
    else
        fout<<-1;
}