Pagini recente » Cod sursa (job #2001522) | Cod sursa (job #2465961) | Cod sursa (job #2831074) | Cod sursa (job #146082) | Cod sursa (job #1662336)
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
const long long maxp = 1LL << 61; // LL doar pentru long long
long long p;
long long nrZerouri(long long n)
{
long long nr = 0;
while (n)
{
nr = nr + n / 5;
n = n / 5;
}
return nr;
}
void solve()
{
long long st = 0, dr = maxp;
while (st < dr)
{
long long m = st + (dr - st) / 2; // echivalent (st + dr) / 2
long long nrZeros = nrZerouri(m);
if (nrZeros == p)
{
out << m - (m % 5) << endl;
return;
}
if (nrZeros < p)
{
st = m + 1;
}
else
{
dr = m - 1;
}
}
out << -1 << endl;
/*cout << st << ' ' << dr;
if (nrZerouri(dr) == p)
{
out << dr << endl;
}
else
{
out << -1 << endl;
}*/
}
int main()
{
in >> p;
solve();
return 0;
}