Pagini recente » Cod sursa (job #916847) | Cod sursa (job #3315825) | Monitorul de evaluare | Cod sursa (job #2708575) | Cod sursa (job #3358659)
#include <iostream>
#include <fstream>
using namespace std;
long long count_zeros(long long n) {
long long zeros = 0;
for (long long i = 5; n / i >= 1; i *= 5) {
zeros += n / i;
}
return zeros;
}
long long find_N(long long p) {
if (p == 0) return 1;
long long low = 1;
long long high = 5 * p;
long long ans = -1;
while (low <= high) {
long long mid = low + (high - low) / 2;
long long zeros = count_zeros(mid);
if (zeros >= p) {
if (zeros == p) {
ans = mid;
}
high = mid - 1;
} else {
low = mid + 1;
}
}
return ans;
}
ifstream fin("fact.in");
ofstream fout("fact.out");
int main() {
long long P;
if (fin >> P) {
long long N = find_N(P);
fout << N << endl;
}
return 0;
}