Как работает % в выводе четных чисел
У меня была задача вывести только четные числа от 0 до 100, я сделал так:
let num = 0
while(num < 100) {
num++;
if(num % 2 == 0) console.log(num)
}
но я не понимаю, как работает эта строчка if(num % 2 == 0) - я знаю, что % это остаток от деления, но все равно не могу понять как это работает.
Ответы (4 шт):
% остаток от деления
четное число можно записать как 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
А зачем вообще вам сначала перебирать все числа, а потом проверять, четные они или нет, если можно изначально пойти только по четным?
for(let num = 0; num < 100; num+=2) console.log(num);
Модуль - //Запустить программу и не вникать в код)
"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("%")));