Pagini recente » Cod sursa (job #1787383) | Cod sursa (job #2033188) | Cod sursa (job #3232552) | Cod sursa (job #3167665) | Cod sursa (job #1770574)
#include <climits>
#include <fstream>
long long nr_zerouri(long long n)
{
long long nr = 0, x = 5;
while (x <= n)
{
nr += n / x;
x *= 5;
}
return nr;
}
long long binara(long long kzero)
{
long long st = 1, dr = INT_MAX, mij, rez;
while (st <= dr)
{
mij = (st + dr) / 2;
rez = nr_zerouri(mij);
if (rez == kzero) return mij - mij % 5;
else if (kzero < rez) dr = mij - 1;
else st = mij + 1;
}
return -1;
}
int main()
{
int n;
std::ifstream("fact.in") >> n;
std::ofstream("fact.out") << ((n == 0) ? 1 : binara(n));
return 0;
}