Cod sursa(job #3157708)

Utilizator Alexbora13Bora Ioan Alexandru Alexbora13 Data 16 octombrie 2023 18:28:02
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
#define MAX 510000000
using namespace std;

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

int nr(int x)
{
    int f=5, NR=0;
    while(f<=x)
    {
        NR+=(x/f);
        f*=5;
    }
    return NR;
}

unsigned long long caut_binar(int x)
{
    unsigned long long st=1;
    unsigned long long dr=MAX;
    unsigned long long ans=-1;
    while(st<=dr)
    {
        long long mij = (st+dr)/2;
        int nr_zero = nr(mij);
        if(x<=nr_zero)
        {
            dr=mij-1;
            ans=mij;
        }
        else st=mij+1;
    }
    return ans;
}

int z;

int main()
{
    fin >> z;
    unsigned long long C = caut_binar(z);
    if(nr(C)==z)fout << C;
    else fout << -1;
    return 0;
}