Pagini recente » Cod sursa (job #1535362) | Cod sursa (job #1722237) | Cod sursa (job #1670737) | Cod sursa (job #2548666) | Cod sursa (job #1384379)
#include<fstream>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
long long findNumZeros(long long x) {
// cout << x << " -> ";
long long count = 0;
for(long long i = 5; i <= x; i *= 5) {
// cout << count << " ";
count += x/i;
}
// cout << count << "\n";
return count;
}
int main() {
ifstream fin("fact.in");
ofstream fout("fact.out");
long long P; fin >> P;
if(P == 0) {
fout << "1\n";
return 0;
}
long long lo = 1, hi = 0x7fffffffffffffff;
while(lo <= hi) {
long long mid = lo + (hi - lo)/2;
long long numZeros = findNumZeros(mid);
if(numZeros == P) {
fout << mid - (mid%5) << '\n';
return 0;
}
else if(numZeros < P) {
lo = mid + 1;
}
else {
hi = mid - 1;
}
}
fout << "-1\n" << '\n';
return 0;
}