Cod sursa(job #2064804)

Utilizator biaiftimeIftime Bianca biaiftime Data 12 noiembrie 2017 20:29:37
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#define Nmax 100000000000
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int Verif(long long x)
{
    long long k=5;
    int s=0;
    while(k<=x)
    {
        s=s+x/k;
        k=k*5;
    }
    return s;
}
long long CautareBinara(long long s,long long d,int p)
{
    if(s<d)
    {
        long long m=s+(d-s)/2;
        int val=Verif(m);
        if(val==p) return m;
        else if(val<m)return CautareBinara(s,m-1,p);
        else return CautareBinara(m+1,d,p);
    }
    return -1;
}
int main()
{
    fin>>p;
    long long val=CautareBinara(1,Nmax,p);
    while(val-1>0&&Verif(val-1)==p)--val;
    fout<<val;
    return 0;
}