Pagini recente » Rating Alexandru Gheorghe (AlexandruG) | Cod sursa (job #185067) | Cod sursa (job #2211239) | Cod sursa (job #2971098) | Cod sursa (job #2832666)
#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;
}