Pagini recente » Cod sursa (job #3177746) | Cod sursa (job #1560744) | Cod sursa (job #2005949) | Cod sursa (job #614364) | Cod sursa (job #2451760)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
unsigned long long int factorial(unsigned long long p) {
unsigned long long nrz = 0;
while (p >= 5) {
nrz += p / 5;
p /= 5;
}
return nrz;
}
int main() {
unsigned long long p;
fin >> p;
unsigned long long int b = 400000015; //
unsigned long long int a = 0;
unsigned long long int mid = 1; // maybe wrtong;
long long int rmid = -1;
if (p != 0) {
while (b >= a) {
mid = (a + b) / 2;
if (factorial(mid) == p)
rmid = mid;
if (p > factorial(mid)) {
a = mid + 1;
}
else {
b = mid - 1;
}
}
}
if (factorial(mid) != p)
fout << rmid;
else
fout << mid;
return 0;
}