Pagini recente » Cod sursa (job #3031750) | Cod sursa (job #2034618) | Cod sursa (job #2279853) | Cod sursa (job #1914780) | Cod sursa (job #2451756)
#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 = 0; // maybe wrtong;
if (p != 0) {
while (b >= a) {
mid = (a + b) / 2;
if (p > factorial(mid)) {
a = mid + 1;
}
else {
b = mid - 1;
}
}
}
if (factorial(mid) != p)
fout << "-1";
else
fout << mid;
return 0;
}