Не могу понять почему не работает алгоритм
Есть задание - составить алгоритм, ищущий все простые числа от 1 до x. Моё решение.
let x = 10;
let y = 2;
for (x; x > 1; --x) {
for (y; y < x; ++y) {
if (x % y === 0) break;
if (y === x-1) {console.log(y)}
}
}
Не могу понять в чём ошибка.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Переделанный код:
for (let x = 10; x > 1; --x) {
let prime = true;
for (let y = 2; y < x; ++y) {
if (x % y === 0) {
prime = false;
break;
}
}
if (prime) {
console.log(x)
}
}
Вывод:
7
5
3
2
Суть переделок:
- Инициализация переменной
yкаждый раз внутри цикла поx, а не один раз как у вас - Печатаем на выходе
x, а неy - Чтобы можно было вывести также и числа
1и2пришлось переделать логику проверки - добавил булевый флаг для этого, без этой переделки1и2не напечатается