Pagini recente » Borderou de evaluare (job #850363) | Cod sursa (job #851964) | Cod sursa (job #901078) | Cod sursa (job #594293) | Cod sursa (job #2906579)
#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 = 10000000000;
while(start != end) {
unsigned long long mid = (start + 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;
}