Cod sursa(job #2635367)

Utilizator nicolaee2Martinescu Nicolae nicolaee2 Data 14 iulie 2020 11:39:05
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include<bits/stdc++.h>
using namespace std;

#define NMAX 100005

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

long long f(long long x)
{
    long long nr = 0;
    long long k = 5;
    while(x / k != 0)
    {
        nr+= x/k;
        k*=5;

    }
    return nr;
}

int main()
{
    long long st = 1;
    long long dr = 10000000000;

    int p;
    fin>>p;


    long long sol = -1;
    while(st <= dr)
    {

        long long m = (st+dr)/2;
        //cout<<m<<endl;
        long long rez = f(m);

        if(rez == p)
        {
            sol = m;
            dr = m - 1;
        }
        else if( rez > p )
        {
            dr = m - 1;
        }
        else
        {
            st = m + 1;
        }

    }

    fout<<sol;


    return 0;
}