Как определить, является ли год високосным?

Дано натуральное число. Требуется определить, является ли год с данным номером високосным. Если год является високосным, то выведите YES, иначе выведите NO. Напомним, что в соответствии с григорианским календарем, год является високосным, если его номер кратен 4, но не кратен 100, а также если он кратен 400.

i = int(input())

if (i % 4 == 0 or i % 400 == 0) and i % 100 != 0:
    print("YES")
else:
    print("NO")

Прошу не показать правильный ответ, а разъяснить в чём моя ошибка и почему код работает не корректно) Я только учусь, всем заранее спасибо!


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

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

Условие нужно переписать так:

if (i % 4 == 0 and i % 100 != 0) or i % 400 == 0:

Потому что то условие, которое написали вы, проверяет, что год кратен 400 и одновременно не кратен 100, что, очевидно, не может выполняться.

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

print(calendar.isleap(int(input())))
→ Ссылка
Автор решения: Dmitriy Green
year = int(input())

if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print("Високосный")
else:
    print("Обычный")
→ Ссылка