Pagini recente » Cod sursa (job #1015924) | Cod sursa (job #2349019) | Cod sursa (job #479074) | Cod sursa (job #932065) | Cod sursa (job #2128166)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p;
long long verif(long long a)
{
long long s = 0;
long long q = 5;
while (a / q)
{
s += (a/q);
q *= 5;
}
return s;
}
long long c_binara(long long Max, long long Min)
{
while (Min < Max)
{
long long Mij = (Max + Min) / 2;
long long n = verif(Mij);
if (n == p)
return Mij;
else
if (n > p)
Max = Mij - 1;
else
if (n < p)
Min = Mij + 1;
}
if (Max < Min)
return -1;
}
int main()
{
f >> p;
if (p == 0)
g << 1;
else
{
long long Max = 1000000000;
long long Min = 0;
long long w = c_binara(Max, Min);
while (w % 5)
w--;
long long s = 0;
long long q = 5;
while (w / q)
{
s += (w / q);
q *= 5;
}
if (s<p || s>p)
g << -1;
else
g << w;
}
}