Функция определения простоты числа на JS
Функция определяет число простое или нет. Если вызвать функцию в консоль лог, результат корректный, если перебирать числа от 0 до некоторого в цикле фор, некоторые числа выдают не корректное значение, не вижу где ошибся.
let i = 3; //Старт для перебора функции симпл
let lim = 25; //лимит до которого выводть последовательность простых чисел
function simple(x) { //Функция определения простоты числа
if (x == 1) {
return false;
};
if (x == 2) {
return true;
};
if (x % 2 == 0) {
return false;
}
while (i * i <= x) {
if (x % i == 0) {
return false;
} else (i++);
};
return true;
};
console.log(simple(15)); //Проверяем что 15 точно фолс вне перебора ниже
for (q = 0; q < lim; q++) {
if (simple(q) == true) {
console.log(q); //Перебор доходит до 15 и выдает тру
};
};
Ответы (1 шт):
Автор решения: Egettl
→ Ссылка
Следует поменять let i = 3; //Старт для перебора функции симпл на var i = 3; //Старт для перебора функции симпл и перенести в тело функции simple. Иначе i не переопределяется с прошлых циклов проверки.
let lim = 25; //лимит до которого выводть последовательность простых чисел
function simple(x) { //Функция определения простоты числа
var i = 3; //Старт для перебора функции симпл
if (x == 1) {
return false;
};
if (x == 2) {
return true;
};
if (x % 2 == 0) {
return false;
}
while (i * i <= x) {
if (x % i == 0) {
return false;
} else (i++);
};
return true;
};
console.log(simple(15)); //Проверяем что 15 точно фолс вне перебора ниже
for (q = 0; q < lim; q++) {
if (simple(q) == true) {
console.log(q); //Перебор доходит до 15 и выдает тру
};
};