Почему не код не работает с входными данными на 7?

Друзья, всем привет! Решил порешать олимпиадки за 9-11 класс по информатике. В качестве языка был выбран питон. Не на долго хватило моих скиллов. Проблема вот в чём:

Сидел решал эту задачу "Задача 2. Чётные – нечётные Маша любит чётные числа, а Миша – нечётные. Поэтому они всегда радуются, если встречают числа, которые им нравятся.

Сегодня им встретились все целые числа от A до B включительно. Маша решила посчитать сумму всех чётных чисел от A до B, а Миша – сумму всех нечётных, после чего они начали спорить, у кого получилась сумма больше. Помогите им – найдите разность между суммой Маши и суммой Миши.

Программа получает на вход два целых положительных числа A и B, не превосходящие 2×109. Программа должна вывести одно число – разность между суммой чётных чисел и суммой нечётных чисел от A до B. Примеры входных и выходных данных Ввод 3 6 Вывод 2 Примечание Сумма чётных чисел равна 4 + 6 = 10, сумма нечётных чисел равна 3 + 5 = 8, разность равна 2. Ввод 3 7 Вывод -5 Примечание Сумма чётных чисел равна 4 + 6 = 10, сумма нечётных чисел равна 3 + 5 = 8, разность равна 2"

Сама задача по себе не сложная, но при вводе чисел 3 и 6 всё ок, получается и всё работает, а когда 3 и 7, то консоль просто молчит и всё. Может быть кто-нибудь знает в чём проблема? Вот код:

num_1 = int(input())
num_2 = int(input())
i = num_1

chet_sum = 0
nechet_sum = 0

# пока i больше или равно num_1 и пока i меньше или равно num_2
while i>=num_1 and i<=num_2:

    # если при делении по модулю на i на 2 остаток равен нулю 
    if i % 2 == 0:
        chet_sum = chet_sum + i
        i = i+1
        continue

    # если при делении по модулю на i на 2 остаток равен не нулю 
    if i % 2 != 0 and i != num_2:
        nechet_sum = nechet_sum + i
        i = i+1
        continue

print(chet_sum - nechet_sum)

input()

введите сюда код

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

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

У вас ошибка в этой строке:

if i % 2 != 0 and i != num_2:

Не нужно ставить условие i != num_2, ведь в условии задачи сказано, что числа от А до Б включительно.
Бонусом вам более короткий функциональный вариант:

a = int(input())
b = int(input())

even = [i for i in range(a, b+1) if i%2==0]
odd = [i for i in range(a, b+1) if i%2==1]

print(sum(even)-sum(odd)
→ Ссылка
Автор решения: Интик
while i>=num_1 and i<=num_2:
при достижении i==7 у вас выполнялось условие i<=num_2 и цикл уходил на следующи круг и так в бесконечность.

if i % 2 != 0 and i != num_2:
сюда i==num_2 уже не попадал.
→ Ссылка