Cod sursa(job #3152480)

Utilizator deerMohanu Dominic deer Data 25 septembrie 2023 12:59:24
Problema Factorial Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 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 = pow(10, 8);
    ans = 0;
    while (left <= right) {
        mid = (left + right) / 2;
        if (check(mid)) {
            ans = mid;
            right = mid - 1;
        } else
            left = mid + 1;
    }
    cout << ans;
}