Pagini recente » Borderou de evaluare (job #3365376) | Borderou de evaluare (job #3365816) | Borderou de evaluare (job #3367020) | Borderou de evaluare (job #3367021) | Cod sursa (job #3365376)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long a(long long m) {
long long zerouri = 0;
long long p = 5;
while (p <= m) {
zerouri = zerouri + m / p;
p = p * 5;
}
return zerouri;
}
int main() {
long long P;
f >> P;
if (P == 0) {
g << 1;
return 0;
}
long long st = 1, dr = 500000000;
long long rezultat = -1;
while (st <= dr) {
long long m = (st + dr) / 2;
if (a(m) >= P) {
rezultat = m;
dr = m - 1;
} else {
st = m + 1;
}
}
if (a(rezultat) == P) {
g << rezultat;
} else {
g << -1;
}
return 0;
}