Cod sursa(job #3223208)

Utilizator PescarusTanislav Luca Andrei Pescarus Data 12 aprilie 2024 17:50:06
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int p, n = -1;
long long exponent(int k){
    long long exp2 = 0, exp5 = 0;
    int val = k;
    int x = 5;
    while(x <= val){
        exp5 += val / x * 1ll;
        x *= 5;
    }
    return exp5;
}
int main(){
    ios::sync_with_stdio(0);
    f.tie(0);
    f >> p;
    int st = 1, dr = 2000000000;
    while(st <= dr){
        int m = (st + dr) / 2;
        long long exp = exponent(m);
        // g << m << ' ' << exp << '\n';
        if(exp == p){
            n = m;
            dr = m - 1;
        }
        else if(exp < p){
            st = m + 1;
        }
        else if(exp > p){
            dr = m - 1;
        }
    }
    g << n << '\n';
}