Pagini recente » Cod sursa (job #2661825) | Cod sursa (job #2760471) | Cod sursa (job #1362437) | Cod sursa (job #130745) | Cod sursa (job #579801)
Cod sursa(job #579801)
#include <iostream>
#include <fstream>
using namespace std;
long long noOfFives (long long n)
{
long long c = 0;
long long pw = 5;
while (n / pw)
{
c += n / pw;
pw *= 5;
}
return c;
}
int main ()
{
ifstream in ("fact.in");
ofstream out ("fact.out");
long long p;
long long n = 5;
long long nfv;
long long left, right;
in >> p;
if (p == 0)
{
out << 1 << endl;
return 0;
}
if (p < 0)
{
out << -1 << endl;
return 0;
}
left = 0;
right = LONG_MAX;
while (1)
{
n = (left + right) / 2;
nfv = noOfFives(n);
if (nfv < p)
left = n;
else
if (nfv > p)
right = n;
else
{
n = n - n % 5;
out << n << endl;
return 0;
}
}
return 0;
}