Cod sursa(job #2974327)

Utilizator gabriel10tm@gmail.comGabriel Marian [email protected] Data 3 februarie 2023 20:56:05
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;
#if 1
#define cin fin
#define cout fout
ifstream fin("fact.in");
ofstream fout("fact.out");
#endif
#define ll long long
ll eval(ll nz){
    ll ans = 0;
    ll sv = 5,r;
    do{
        r = nz/sv;
        ans += r;
        sv *= 5;
    }while(r);
    return ans;
}
int main()
{
    int n;
    cin >> n;
    ll st = 1, dr = 5e8;
    ll p = 0;
    while(st<=dr){
        ll md = (st+dr)/2;
        ll val = eval(md);
        if(val >= n){
            p = md;
            dr = md - 1;
        }
        else
            st = md + 1;
    }
    if(eval(p)==n)
        cout << p;
    else
        cout << -1;
}