Pagini recente » Cod sursa (job #2756450) | Cod sursa (job #1773289) | Cod sursa (job #1520987) | Cod sursa (job #2391646) | Cod sursa (job #2281008)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
const long long maxx = 1000000003;
int check(long long mij)
{
long long a = 5, s=0;
while(mij >= a)
{
s = s + mij / a;
a *= 5;
}
return s;
}
int nr = 1, poz = -1;
void cautbinar(long long st, long long dr, long long n)
{
if(st <= dr)
{
long long mij = (st + dr) / 2;
int verf = check(mij);
if (verf == n && (check(mij - 1) < n))
{
poz = mij;
return;
}
if (verf >= n)
cautbinar(st, mij - 1, n);
else
cautbinar(mij + 1, dr, n);
}
}
int main()
{
unsigned long long p;
f >> p;
if(p == 0)
g << 1;
else
if(p == 1)
g << 5;
else
{
cautbinar(1, maxx, p);
if(poz != -1)
g<< poz;
else
g << poz;
}
return 0;
}