Pagini recente » Cod sursa (job #1405590) | Cod sursa (job #1689121) | Cod sursa (job #3233749) | Cod sursa (job #2154813) | Cod sursa (job #1481193)
#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 - 1) {
mijloc = (stanga + dreapta) / 2;
f = zeroFact(mijloc);
if (f < P) {
stanga = mijloc;
}
else {
dreapta = mijloc;
}
cout << mijloc << " " << stanga << " " << dreapta << " " << f << "\n";
}
cout << zeroFact(mijloc) << " " << P << " " << mijloc;
if(zeroFact(mijloc) == P) {
fout << mijloc;
}
else {
fout << "-1";
}
return 0;
}