Pagini recente » Cod sursa (job #624273) | Cod sursa (job #2768462) | Cod sursa (job #2862662) | Cod sursa (job #148282) | Cod sursa (job #1481207)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int zeroFact(int n) {
int s = 0;
while (n != 0) {
s += n / 5;
n /= 5;
}
return s;
}
int main() {
int P, stanga, dreapta, mijloc, f;
fin >> P;
if (P == 0) {
fout << 1 << "\n";
return 0;
}
stanga = 0;
dreapta = 5 * P + 1;
while (stanga < dreapta) {
mijloc = (stanga + dreapta) / 2;
f = zeroFact(mijloc);
if (f < P) {
stanga = mijloc + 1;
}
else if (f > P) {
dreapta = mijloc - 1;
}
else {
while (mijloc % 5) {
--mijloc;
}
fout << mijloc;
return 0;
}
}
fout << "-1";
return 0;
}