Pagini recente » Cod sursa (job #1680819) | Cod sursa (job #1388358) | Borderou de evaluare (job #2051297) | Cod sursa (job #2216333) | Cod sursa (job #2330872)
#include <fstream>
#include <cmath>
using namespace std;
unsigned long long nrz(unsigned long long n);
unsigned long long mijl, maxx, minn = 0, gasit = 0, n, nr;
int main() {
ifstream ifs("fact.in");
ofstream ofs("fact.out");
ifs >> n;
maxx = 5 * n;
while (minn <=maxx && !gasit)
{
mijl = (minn + maxx) / 2;
nr = nrz(mijl);
if (nr == n)
gasit = 1;
if (nr > n)
maxx = mijl - 1;
else
minn = mijl + 1;
}
if (gasit == 0)
ofs << "-1";
else
{
if (n == 0) ofs << 1;
else
ofs << mijl / 5 * 5;
}
return 0;
}
unsigned long long nrz(unsigned long long n) {
unsigned long long num = 0, mod = 5;
while (n / mod != 0) {
num = num + n / mod;
mod = mod * 5;
}
return num;
}