Cod sursa(job #2496492)

Utilizator Andrei2313Avram Andrei Andrei2313 Data 20 noiembrie 2019 22:14:42
Problema Factorial Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long st,dr,mij,sol,a;
int p;
int nr0(long long x)
{
    long long s=0;
    long long nr=5;
    while(nr<=x)
    {
        s=s+x/nr;
        nr=nr*5;
    }
    return s;
}
int main()
{
    fin>>p;
    st=1;
    dr=90000000;
    bool ok=1;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        a=nr0(mij);
        if(a==p)
        {
            sol=mij;
            dr=mij-1;
            ok=0;
        }
        else
        {
            if(a>p)
                dr=mij-1;
            else
                st=mij+1;
        }
    }
    if(ok==1)
        fout<<-1<<"\n";
    else
        fout<<sol<<"\n";
    return 0;
}