Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2650147)
#include <iostream>
#include <vector>
#include <fstream>
#include <deque>
#include <algorithm>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int NMax = 1000000001;
long long zerouri(long long n)
{
// Initialize result
long long count = 0;
// Keep dividing n by powers of
// 5 and update count
for (long long i = 5; n / i >= 1; i *= 5)
count += n / i;
return count;
}
int main()
{
int n;
fin >> n;
long long st, dr, N;
int Solution = -1;
st = 1;
dr = NMax;
while (st <= dr)
{
N = (dr + st) / 2;
int ct = zerouri(N);
if (ct == n)
{
Solution = N;
dr = N - 1;
continue;
}
if (ct < n)
st = N + 1;
else
dr = N - 1;
}
fout << Solution;
}