Pagini recente » Cod sursa (job #3223613) | Cod sursa (job #2436450) | Cod sursa (job #86153) | Cod sursa (job #1004359) | Cod sursa (job #2451735)
#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 = 9223372036854775807; //
unsigned long long int a = 0;
unsigned long long int mid; // maybe wrtong;
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;
}