Cod sursa(job #2436294)

Utilizator Dragos1226Dragos Chileban Dragos1226 Data 5 iulie 2019 13:48:26
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
#define N 1000000000
using namespace std;

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

long long nrz(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 binarysearch(long long p)
{
    long long low=0,hi=N,m;
    while(low<=hi)
    {
        m=(low+hi)/2;
        long long z=nrz(m);
        if(z==p)
        {
            long long x=m-1;
            while(nrz(x)==z)
                x--;
            return x+1;
        }
        else
            if(z<p)
            low=m+1;
        else
            hi=m-1;
    }
    return -1;
}


int main() {
    long long p;
    in>>p;
    out<<binarysearch(p);
}