Pagini recente » Cod sursa (job #160585) | Cod sursa (job #2671524) | Cod sursa (job #709250) | Cod sursa (job #491272) | Cod sursa (job #2199851)
#include <fstream>
#include <iostream>
using namespace std;
int n;
int check(int p, int n, int cod = 1)
{
int f = 5, total = 0;
while(p >= f)
{
total += p / f;
f *= 5;
}
if(cod)
return (total >= n);
else
return total == n;
}
int cauta(int n)
{
if(n == 0)
return 1;
int st, dr, mij;
st = 4 * n;
dr = 5 * n;
while(st < dr)
{
mij = st + (dr - st) / 2;
if(check(mij, n))
dr = mij;
else
st = mij + 1;
}
if(check(st, n, 0))
return st;
return -1;
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
f >> n;
g << cauta(n);
f.close();
g.close();
}