Pagini recente » Cod sursa (job #870955) | Cod sursa (job #2433350) | Cod sursa (job #2069963) | Cod sursa (job #1528155) | Cod sursa (job #2065707)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long formula (long long x)
{
long long k=5, S=0;
while (k <= x)
{
S += x/k;
k *= 5;
}
return S;
}
long long caut_bin (long long st, long long dr, int P)
{
if(st <= dr)
{
long long m = st + (dr - st)/2; //prevent overflow
long long temp = formula(m);
if(temp == P)
return m;
else
if(temp > P)
return caut_bin(st, m-1, P);
else
if(temp < P)
return caut_bin(m+1, dr, P);
}
return -1;
}
int main()
{
int P;
fin>>P;
if(P == 0)
{
fout<<1;
return 0;
}
long long dr = 100000000000000;
long long sol = caut_bin(1, dr , P);
if (sol == -1)
fout<<sol;
else
{
sol -= (sol%5);
fout<<sol;
}
fin.close();
fout.close();
return 0;
}