Pagini recente » Cod sursa (job #666991) | Cod sursa (job #1082539) | Cod sursa (job #1195287) | Cod sursa (job #2678773) | Cod sursa (job #1481204)
#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;
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;
}