Cod sursa(job #2430581)

Utilizator EmanuelIMIacob Emanuel EmanuelIM Data 15 iunie 2019 14:15:05
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#define N 1000000000

using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

long long nz(long long n)
{
   if(n==0) return 1;
   long long S=0;
   for(long long i=5;n/i>=1;i*=5) S+=n/i;
   return S;
}

long long cautbin(long long P)
{
    long long st=0,dr=N,m;
    while(st<=dr)
    {
        m=(st+dr)/2;
        long long z=nz(m);
        if(z==P)
        {
            long long x=m-1;
            while(nz(x)==z) x--;
            return x+1;
        }
        else if(z<P) st=m+1;
        else dr=m-1;
    }
    return st;
}

int main()
{
    long long P;
    fin>>P;
    fout<<cautbin(P);
    return 0;
}