Cod sursa(job #2832666)

Utilizator AswVwsACamburu Luca AswVwsA Data 14 ianuarie 2022 09:06:59
Problema Factorial Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#include <climits>
using namespace std;

ifstream cin("fact.in");
ofstream cout("fact.out");

int lagrange(int x)
{
    int ans = 0;
    for (; x > 5; x /= 5)
        ans += x / 5;
    return ans;
}

int main()
{
    int p;
    cin >> p;
    int st = 1, dr = INT_MAX - 1, sol = -1, of;
    while (st <= dr)
    {
        int med = ((st + dr) >> 1), val = lagrange(med);
        if (val >= p)
        {
            sol = med;
            of = val;
            dr = med - 1;
        }
        else st = med + 1;
    }
    if (of == p)
        cout << sol;
    else
        cout << -1;
}