Cod sursa(job #2297806)

Utilizator BotzkiBotzki Botzki Data 6 decembrie 2018 17:21:47
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long n;
//la ce putere imi apare 5! in scrierea nr, atatia de 0 am
int legendre(long long x)
{
    long long s=0;
    long long numitor=5;
    while(numitor<=x)
    {
        s=s+x/numitor;
        numitor=numitor*5;
    }
    return s;
}
int main()
{
     long long st=1, dr=2000000000, med, solutie, lm;
    int p;
    fin>>p;
    bool ok=1;
    while(st<=dr)
    {
        med=(dr+st)>>1;
        lm=legendre(med);
        if(lm==p)
        {
            solutie=med;
            dr=med-1;
            ok=0;
        }
        else
        {
            if(lm>p)
                dr=med-1;
            else
                st=med+1;
        }
    }
    if(ok==1)
        fout<<"-1"<<"\n";
    else
        fout<<solutie<<"\n";

    return 0;
}