Деление в интервале

Всем привет!

Надо создать программу, которая будет считать все цифры в интервале(в определённом интервале, которую будет вводить пользователь, следовательно еще нужен input()), которые будут делится на 4. Потом надо будет посчитать сумму эти чисел в интервале, которые делятся на 4. И также важно было чтобы программа проверяла, делится ли число на 4 без остатка.( с остатком не годится).

Обязательно нужно иcпользовать функцию def, if statement и (while loop).

Пока мой код выглядит так:

    x = int(input("Ievadi pirmo skaitli"))
    y = int(input("Ievadi otro skaitli"))
    while (x != y):
        if (x % 4 > 0):
            x = x + 1
        else:
            a = x```

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

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

Если я правильно понял задачу (а я не уверен, что понял правильно), то

  1. пользователь должен ввести минимальное и максимальное число (диапазон)

  2. в указанном диапазоне выбираются числа, которые кратны 4

  3. вычисляется сумма данных чисел

Если так, кроме того еще требуется использовать while, if и def, то код может выглядеть так:

def calc_sum(left, right):
    res = 0

    value = left

    while value <= right:

        if value % 4 == 0:
            res += value

        value += 1

    return res


left = int(input('введите левую часть диапазона: '))
right = int(input('введите правую часть диапазона: '))

print("результат:", calc_sum(left, right))

или все таки надо подсчитать сумму цифр чисел, кратных 4?

P.S.

чтобы вводить границы не диапазона в одном запросе, а не в двух, можно сделать такой код:

def calc_sum(borders):
    res = 0

    value = borders[0]

    while value <= borders[1]:

        if value % 4 == 0:
            res += value

        value += 1

    return res


borders = list(map(int, input('введите диапазон: ').split()))

print("результат:", calc_sum(borders))

тогда ввести можно сразу

10 20

А вообще эта задача может быть решена в 1 строку

borders = list(map(int, input('введите диапазон: ').split()))

res = sum([i for i in range(borders[0], borders[1] + 1) if i % 4 == 0])

print("результат:", res)

Однако если разговор все таки шел о подсчёте суммы цифр в числах, кратных 4, то тогда можно использовать функцию:

def sum_digits(num):
    res = 0

    value = abs(num)

    while value > 0:
        res += value % 10
        value //= 10

    return res
→ Ссылка