Cod sursa(job #2832665)
Utilizator | Camburu Luca AswVwsA | Data | 14 ianuarie 2022 09:05:29 |
---|---|---|---|
Problema | Factorial | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 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;
while (st <= dr)
{
int med = ((st + dr) >> 1), val = lagrange(med);
if (val >= p)
{
sol = med;
dr = med - 1;
}
else st = med + 1;
}
cout << -1;
}