Cod sursa(job #2949220)

Utilizator CiuntuTiberiuCiuntu Tiberiu CiuntuTiberiu Data 30 noiembrie 2022 11:11:17
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int p;
int legendre(long long n,int k)
{
    int s=0;
    long long numitor=k;
    while(n>=numitor)
        {
            s=s+n/numitor;
            numitor=numitor*k;
        }
    return s;
}
int ok(long long nr)
{
    int z;
    z=legendre(nr,5);
    return z;
}
long long bsL(long long st,long long dr)
{
    long long med,last=-1;
    int found=0,zerouri;
    while(st<=dr)
    {
        med=(st+dr)>>1;
        zerouri=ok(med);
        if(zerouri==p)
        {
            found=1;
            last=med;
            dr=med-1;
        }
        else
            if(zerouri>p)
                {
                    last=med;
                    dr=med-1;
                }
            else
                st=med+1;

    }
    if(found==0)
        return -1;
    return last;
}
int main()
{
    int sol;
    fin>>p;
    long long dr=(1LL<<62);
    sol=bsL(1,dr);
    fout<<sol;
}