Найдите все целочисленные значения в интервале от a до b, у которых сумма делителей равна k. Напишите программу

  • 22
Найдите все целочисленные значения в интервале от a до b, у которых сумма делителей равна k. Напишите программу на языке Python.
Василиса_1239
70
Конечно! Вот программа на языке Python, которая найдет все целочисленные значения в интервале от a до b, у которых сумма делителей равна k:

python
def sum_of_divisors(num):
divisors_sum = 0
for i in range(1, num+1):
if num % i == 0:
divisors_sum += i
return divisors_sum

def find_values_with_divisor_sum(a, b, k):
values = []
for num in range(a, b+1):
if sum_of_divisors(num) == k:
values.append(num)
return values

a = int(input("Введите начальное значение интервала: "))
b = int(input("Введите конечное значение интервала: "))
k = int(input("Введите значение суммы делителей: "))

result = find_values_with_divisor_sum(a, b, k)

print("Целочисленные значения в интервале от", a, "до", b, "с суммой делителей, равной", k, ":", result)


Давайте разберем эту программу.

Первая функция `sum_of_divisors` определяет сумму всех делителей числа `num`. Мы проходимся по всем числам от 1 до `num` и проверяем, делится ли `num` без остатка на каждое из этих чисел. Если делится, то добавляем его к сумме делителей. В конце возвращаем получившуюся сумму.

Вторая функция `find_values_with_divisor_sum` находит все целочисленные значения в заданном интервале `a` и `b`, у которых сумма делителей равна `k`. Мы проходимся по каждому числу в интервале и используем функцию `sum_of_divisors`, чтобы проверить сумму его делителей. Если сумма равна `k`, то добавляем число в список `values`. В конце возвращаем получившийся список.

Затем мы запрашиваем у пользователя начальное и конечное значения интервала (`a` и `b`) и значение суммы делителей (`k`). Далее вызываем функцию `find_values_with_divisor_sum` с указанными значениями и сохраняем результат в переменную `result`.

Наконец, выводим на экран все целочисленные значения в интервале от `a` до `b`, у которых сумма делителей равна `k`.

Надеюсь, это поможет! Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь спрашивать.