Я создаю код для нахождения наивысшего общего множителя из двух чисел, однако код всегда будет возвращать «неопределенное», если только два числа, указанные в качестве параметров функции, не равны.
У меня естьпробовал несколько числовых входных данных, таких как (3,6), (6,12), (7,11) и другие аналогичные, все из которых возвращали «неопределенное».
function HCF_Finder (num1, num2) {
var i = 1;
let factors1 = [];
let factors2 = []
while (i <= Math.ceil(num1 / 2)) {
if (num1 % i == 0) {
factors1.push(i);
}
i ++
}
i = 1;
while (i <= Math.ceil(num2 / 2)) {
if (num2 % i == 0) {
factors2.push(i);
}
i ++;
}
factors1.push(num1);
factors2.push(num2);
if (num1 == num2) {
return (num1);
} else if (num1 < num2) {
for (x = 1; x < factors1.length + 1; x ++) {
if (factors2.includes(factors1[-1 * x])) {
return (factors1[-1 * x]);
}
}
} else {
for (x = 1; x < factors2.length + 1; x ++) {
if (factors1.includes(factors2[-1 * x])) {
return (factors2[-1 * x]);
}
}
}
}
Ожидаемый результат(3,5) должно быть 1, но не определено.Ожидаемое значение (6,12) должно быть 6, но не определено.