Pagini recente » Cod sursa (job #420649) | Cod sursa (job #3199404) | Cod sursa (job #2713296) | Cod sursa (job #385182) | Cod sursa (job #2970306)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long v[100000000], fv[6];
void fact(int a) {
for (long long i = 2; i <= a; i++) {
long long aux = i;
while (aux % 2 == 0) {
aux = aux / 2;
fv[2]++;
}
while (aux % 5 == 0) {
aux = aux / 5;
fv[5]++;
}
}
}
int zero(int a) {
int cnt = 0, x = fv[5], y = fv[2];
if (x > y) {
int aux = x;
x = y;
y = aux;
}
return x;
}
void caut_bin(int x) {
long long st = 1, dr = 100000000, rez = -1;
while (st <= dr) {
long long m = (st + dr) / 2;
fact(v[m]);
int cnt = zero(v[m]);
if (cnt < x) {
st = m + 1;
}
else if (cnt == x) {
rez = m;
dr = m - 1;
}
else {
dr = m - 1;
}
fv[2] = 0;
fv[5] = 0;
}
out << rez;
}
int main() {
int x;
in >> x;
for (int i = 1; i <= 100000000; i++) v[i] = i;
caut_bin(x);
}