Pagini recente » Cod sursa (job #2681441) | Cod sursa (job #712257) | Cod sursa (job #1223722) | Cod sursa (job #3225595) | Cod sursa (job #2906571)
#include <fstream>
#include <climits>
int main() {
std::ifstream fin("fact.in");
std::ofstream fout("fact.out");
unsigned long long p;
fin >> p;
unsigned long long start = 1, end = UINT_MAX;
while(start != end) {
unsigned long long mid = (start >> 1) + (end >> 1), num = 0;
for(unsigned long long pow = 5; pow < mid; pow *= 5)
num += mid / pow;
if(num == p) {
start = mid;
break;
} else if(num < p) {
start = mid + 1;
} else {
end = mid - 1;
}
}
start -= start % 5;
if(!start) start = 1;
fout << start;
fin.close();
fout.close();
return 0;
}