Как работает % в выводе четных чисел

У меня была задача вывести только четные числа от 0 до 100, я сделал так:

let num = 0
while(num < 100) {
    num++;
    if(num % 2 == 0) console.log(num)
}

но я не понимаю, как работает эта строчка if(num % 2 == 0) - я знаю, что % это остаток от деления, но все равно не могу понять как это работает.


Ответы (4 шт):

Автор решения: Zhihar

% остаток от деления

четное число можно записать как x = 2 * a + 0, остаток от деления на 2 в данном случае будет 0

нечётное число можно записать так x = 2*a + 1, остаток от деления на 2 в данном случае будет 1

поэтому

x % 2 == 0 - четное число

x % 2 == 1 - нечётное число

Аналогично проверяется чётность любого числа с любым (кроме 0):

x % y == 0 - x кратно y

→ Ссылка
Автор решения: Эникейщик

Четное число - это число, которое делится на два без остатка.

num % 2 // делится на два
        == 0 // без остатка, остаток равен 0
→ Ссылка
Автор решения: Darth

А зачем вообще вам сначала перебирать все числа, а потом проверять, четные они или нет, если можно изначально пойти только по четным?

for(let num = 0; num < 100; num+=2) console.log(num);

→ Ссылка
Автор решения: WalkMess

Модуль - //Запустить программу и не вникать в код)

"use strict";function getRemnant(module){var numOne=+prompt("Введите число:"),numTvo=+prompt("Введите число по модулю");if(numOne>numTvo&&"%"===module){var coefficient=Math.floor(numOne/numTvo),remains=numTvo*coefficient;alert(" \n    Решение: input = ".concat(numOne," and input = ").concat(numTvo,"\n \n    Ваше входное число: ").concat(numOne,"\n \n    Число по модулю: ").concat(numTvo,"\n\n   \n\n    Для получение ответа, мы должны: \n    @ЧИСЛОПОМОДУЛЮ положить @ВХОДНОЕЧИСЛО.  \n    Мы можем поместить ").concat(numTvo," в ").concat(numOne," = ").concat(coefficient,' раз(а)  \n  \n\n    Для числа "').concat(numOne,'" ЧИСЛОПОМОДУЛЮ предположим "').concat(numTvo,'"\n    Пробуем поместить "').concat(numTvo,'" в "').concat(numOne,'" и того получаем N = ').concat(remains,'\n\n    Наше значение от числа: "A" => A - N  - Это и будет ответ.  \n    ').concat(numOne," - ").concat(remains,"\n    "))}else numOne<numTvo&&"%"===module&&alert(" \n    Решение: input = ".concat(numOne," and input = ").concat(numTvo,"\n \n    Ваше входное число: ").concat(numOne,"\n \n    Число по модулю: ").concat(numTvo,"\n\n    \n\n    Для получение ответа, мы должны запомнить: \n    Если: ").concat(numOne," < ").concat(numTvo," \n    Ответ всегда - input = ").concat(numOne,"\n    "));return Math.floor(eval(numOne+module+numTvo))}alert("Ответ: ".concat(getRemnant("%")));

→ Ссылка