Pagini recente » Cod sursa (job #2414405) | Cod sursa (job #1487464) | Statistici visuian mihai (visuianmihai1) | Cod sursa (job #1961187) | Cod sursa (job #1010379)
#include <fstream>
using namespace std;
unsigned long long nr0(unsigned long long x)
{
unsigned long long ret = 0, vaz;
if (x % 5)
{
x = x - (x % 5);
}
unsigned long long i = 0;
unsigned long long j;
while (i < x)
{
vaz = 1;
for (j = 5; j * 5 < x - i; j *= 5)
{
vaz = vaz * 5 + 1;
}
i += j;
ret += vaz;
}
/*
while (x > 1)
{
x /= 5;
ret++;
}*/
return ret;
}
int main()
{
ifstream IN ("fact.in");
ofstream OUT ("fact.out");
int p; IN >> p;
unsigned long long noo5 = 0;
unsigned long long a = 0, b = 10000000000, c = (a+b) / 2;
if (p == 0)
{
OUT << "1\n";
return 0;
}
else
{
while (a <= b)
{
c = a + (b - a)/2;
noo5 = nr0(c);
if (noo5 >= p)
{
b = c - 1;
}
else
{
a = c + 1;
}
}
}
if (noo5 > p)
{
OUT << "-1\n";
return 0;
}
OUT << c + 1 << "\n";
return 0;
}