Cod sursa(job #3152618)

Utilizator deerMohanu Dominic deer Data 25 septembrie 2023 21:26:02
Problema Factorial Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;
int p;
bool check(int val) {
    int putere_2, putere_5, count_2, count_5;
    putere_2 = 1;
    count_2 = 0;
    while (putere_2 <= val) {
        putere_2 *= 2;
        count_2 += val / putere_2;
    }
    putere_5 = 1;
    count_5 = 0;
    while (putere_5 <= val) {
        putere_5 *= 5;
        count_5 += val / putere_5;
    }
    return (min(count_2, count_5) >= p);
}
int main() {
    ifstream cin("fact.in");
    ofstream cout("fact.out");
    int left, right, mid, ans;
    cin >> p;
    left = 1;
    right = INT_MAX;
    ans = -1;
    while (left <= right) {
        mid = (left + right) / 2;
        if (check(mid)) {
            ans = mid;
            right = mid - 1;
        } else
            left = mid + 1;
    }
    cout << ans;
}