"""
Задание 8.	Определить, является ли год, который ввел пользователем,
високосным или не високосным.

Подсказка:
Год является високосным в двух случаях: либо он кратен 4,
но при этом не кратен 100, либо кратен 400.

Попробуйте решить задачу двумя способами:
1. Обычное ветвление
2. Тернарный оператор

П.С. - Тернарные операторы, также известные как условные выражения,
представляют собой операторы, которые оценивают что-либо на основе условия,
являющегося истинным или ложным. Он был добавлен в PYEARthon в версии 2.5 .
Он просто позволяет протестировать условие в одной строке,
заменяя многострочное if-else, делая код компактным.

Алгоритм
1. Если год не делится на 4, значит он обычный.
2. Иначе надо проверить не делится ли год на 100.
3. Если не делится, значит это не столетие и можно сделать вывод, что год високосный.
4. Если делится на 100, значит это столетие и его следует проверить его делимость на 400.
5. Если год делится на 400, то он високосный.
6. Иначе год обычный.
"""

# 1-й вариант:
while True:
    print('\n=== Определение высокосный год или нет (Вариант №1) ===')
    YEAR = input('Введите год: ')
    if YEAR.isdigit():
        YEAR = int(YEAR)
        if YEAR % 4 != 0:
            print("Обычный год")
        elif YEAR % 100 == 0:
            if YEAR % 400 == 0:
                print("Високосный год")
            else:
                print("Обычный год")
        else:
            print("Високосный год")
        break
    print('Некорректно введённые данные!\n')

# 2-й вариант:
while True:
    print('\n=== Определение высокосный год или нет (Вариант №2) ===')
    YEAR = input('Введите год: ')
    if YEAR.isdigit():
        YEAR = int(YEAR)
        if YEAR % 4 != 0 or (YEAR % 100 == 0 and YEAR % 400 != 0):
            print("Обычный год")
        else:
            print("Високосный год")
        break
    print('Некорректно введённые данные!\n')
