Как проверить число на четность в питоне
Перейти к содержимому

Как проверить число на четность в питоне

  • автор:

Посчитать четные и нечетные цифры числа

Определить, сколько в числе четных цифр, а сколько нечетных. Число вводится с клавиатуры.

Решение задачи на языке программирования Python

Если число делится без остатка на 2, его последняя цифра четная. Увеличиваем на 1 счетчик четных цифр even . Иначе последняя цифра числа нечетная, увеличиваем счетчик нечетных цифр odd .

В Python операцию нахождения остатка от деления выполняет знак % .

Чтобы избавиться от младшего уже учтенного разряда, число следует разделить нацело на 10. Деление нацело обозначается двумя слэшами // .

a = int(input()) even = 0 odd = 0 while a > 0: if a % 2 == 0: even += 1 else: odd += 1 a = a // 10 print(f'Even: , odd: ')
65439 Even: 2, odd: 3

Кроме чисто математического подхода в Python можно решить задачу «через строку». Мы не будем переводить введенное строковое представление числа к целочисленному типу, вместо этого переберем символы строки в цикле for . Каждый символ преобразуем к числу и проверим на четность.

a = input() even = 0 odd = 0 for i in a: if int(i) % 2 == 0: even += 1 else: odd += 1 print("Even: %d, odd: %d" % (even, odd))

Поскольку количество четных (как и нечетных) цифр ограничено, в программу можно включить что-то типа «базы данных» и проверять каждый символ на вхождение в нее.

a = input() digits = "02468" even = 0 odd = 0 for i in a: if i in digits: even += 1 else: odd += 1 print("Even: %d, odd: %d" % (even, odd))

Обратим внимание, что оператор in языка Python в заголовке цикла for обозначает иное, чем в заголовке условного оператора. Логическое выражение i in digits возвращает истину если i входит в состав digits . В иных случаях — ложь.

X Скрыть Наверх

Решение задач на Python

Определение четности числа с использованием рекурсии

Программа принимает на вход число и рекурсивно определяет, четное это число или нечетное.

Решение задачи

  1. Принимаем число и записываем его в переменную.
  2. Передаем это число в качестве аргумента в рекурсивную функцию.
  3. Определяем базовое условие рекурсии (т.е., базу рекурсии), при котором решение задачи тривиально и не требует дальнейшего обращения функции к самой себе. В данном случае значение переменной должно быть меньше 2 . Если это условие выполняется, то работа функции завершается.
  4. В противном случае мы опять рекурсивно вызываем нашу функцию, уменьшив значение переменной на 2 .
  5. В конце концов работа функции завершается, и по ее результату ( True или False ) мы определяем четность числа.
  6. Выводим конечный результат на экран.
  7. Конец.

Исходный код

Ниже дан исходный код для программы для рекурсивного определения четности числа. Результаты работы программы также даны ниже.

def check(n): if (n < 2): return (n % 2 == 0) return (check(n - 2)) n = int(input("Введите число:")) if (check(n) == True): print("Число четное!") else: print("Число нечетное!")

Объяснение работы программы

  1. Пользователь вводит число и оно записывается в переменную n .
  2. Число, записанное в переменную n , передается в качестве аргумента в рекурсивную функцию check() , которая в коде написана самой первой.
  3. Базой рекурсии является условие n < 2 . При выполнении данного условия функция прекращает свою работу и возвращает либо True , либо False .
  4. В противном случае, функция вызывается снова с аргументом n - 2 .
  5. Когда функция завершает свою работу и возвращает результат, мы на его основе определяем, четное это число или нечетное. Если функция возвращает True , то число четное, если False , то нечетное.
  6. Выводим результат на экран.

Результаты работы программы

Пример 1: Введите число:124 Число четное! Пример 2: Введите число:567 Число нечетное!

Как проверить число на четность в питоне

Запросить число от 1 до 99 и проверить число на четность/нечетность и разрядность. То есть например для 7 вывести “однозначное нечетное”, для 92 – “двухзначное четное”

Чтобы проверить число на четность надо узнать делится ли оно на два нацело.

Для этого надо узнать остаток от деления числа на 2, если он равен 0 то значит число четное. В python есть специальная операция для того чтобы узнать остаток от деления, работают с ней так:

x = int(input("введите x: ")) ostatok_na_2 = x % 2 print(f"Остаток от деления x на 2 равен ostatok_na_2>") 

если запустить получим что-то такое

таким образом чтобы узнать является ли число четным надо сравнить остаток от деления с нулем:

x = int(input("введите x: ")) ostatok_na_2 = x % 2 if ostatok_na_2 == 0: print(f"Число x> четное") 

ну а теперь надо задание допилить:

Запросить число от 1 до 99 и проверить число на четность/нечетность и разрядность. То есть например для 7 вывести “однозначное нечетное”, для 92 – “двухзначное четное”

Напишите программу, проверяющую число на четность, используя только битовые операции

Обложка поста Напишите программу, проверяющую число на четность, используя только битовые операции

В этой задаче вам необходимо реализовать функцию, которая бы проверяла число на четность, используя только битовые операции AND, OR, NOT.

Решение

Заметим, что число x нечетно только тогда, когда самый младший (то есть первый справа) бит в его двоичной записи равен 1. Докажем это. Вспомним знакомый со школьной статьи алгоритм перевода числа из двоичной системы в десятеричную. Он показан на следующей картинке:

Мы можем вынести два за скобку из всех слагаемых, кроме последнего, которое может принимать значение либо 1, либо 0. Таким образом, если оно равно нулю, то сумма будет иметь вид 2(…) = x, то есть будет делиться на два, а если оно будет равно единице, то сумма будет иметь вид 2(…)+1 = x, то есть не будет делиться на два. Это является критерием четности. Ч.т.д.

Итак, мы доказали факт того, что число нечетно, когда его младший бит равен 1, и четно, когда младший бит равен 0. Остался вопрос: как получить последний бит числа. Утверждение: последний бит числа x равен x&1, где & — побитовое И. Почему это так? И равно 1 только когда оба его аргумента равны 1. Число 1 в двоичной системе счисления имеет следующий вид: …000001 (в зависимости от того, скольки битными числами мы оперируем). А значит, при побитовом И единицы с числом х у результата все биты, кроме последнего, будут равны нулю, а последний бит будет равен 1, если в числе x он был равен 1 (1&1 = 1), и 0, если в числе x он был 0 (0&1 = 0).

Таким образом, значение выражения x&1 равно 1, если число x нечетное, и 0, если x четное.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *