Почему не считается последнее число?

Это мой код:

number1 = int(input("Укажи начало интервала:"))
number2 = int(input("Укажи конец интервала:"))
if number1 and number2 < 0:
    print("Введи пожалуйста позитивное число")

while number2 <= number1 :
    print("Концу интервала нужно быть больше чем начала интервала!")
    break

for i in range(number1, number2 + 1):
    if i % 4 == 0:
        
        c = sum(i for i in range(number1, number2) if i % 4 == 0)
print("В интервале чисел от "+str(number1)+"до "+str(number2)+",сумма чисел, которая делится на 4 : "+str(c))

Задача этой программы высчитывать сумму чисел, которые делятся на 4 в интервале чисел , которые я могу указать. Проблема в том, что например при введении чисел 3 и 32, он показывает сумму 112, а правильный ответ 144(сами можете посчитать), следовательно он не считает последнюю цифру 32, так как 112+32=144. Как это можно исправить?


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

Автор решения: Danis
for i in range(number1, number2 + 1):
    if i % 4 == 0:
        
        c = sum(i for i in range(number1, number2) if i % 4 == 0) 

Зачем здесь первый цикл for, от него можно просто избавиться.

в range(number1, number2) к number2 надо прибавить 1

c = sum(i for i in range(number1, number2 + 1) if i % 4 == 0)

Не правильная проверка:

if number1 and number2 < 0: 

должно быть:

if number1 < 0 or number2 < 0:
→ Ссылка