Pagini recente » Cod sursa (job #1875055) | Cod sursa (job #991960) | Cod sursa (job #2963055) | Cod sursa (job #3252253) | Cod sursa (job #2612179)
#include <iostream>
#include <fstream>
int nr = 0;
int nr_0(int n) {
int putere = 5;
int nr = 0;
while (n/putere) {
nr += n/putere;
putere *= 5;
}
return nr;
}
int main() {
std :: ifstream fin ("fact.in");
std :: ofstream fout ("fact.out");
int p;
int nr = -1;
fin >> p;
if (!p) {
fout << 1;
return 0;
}
else {
int st = 0;
int dr = 5*p;
while (st <= dr) {
int mijloc = (st + dr) /2;
if (nr_0(mijloc) == p) {
nr = mijloc - mijloc%5;
// in caz ca e ceva de genul 17.5 sa se ajunga la minim, adica 15
break;
} else {
if (nr_0(mijloc) < p) {
st = mijloc + 1;
} else {
dr = mijloc - 1;
}
}
}
}
fout << nr;
return 0;
}