Вопрос задан 02.11.2026 в 21:25.
Предмет Информатика.
Спрашивает Романова Софья.
Условие: Найдите все целые числа из промежутка от a до b, у которых сумма делителей равна k. Формат входных данных: На вход подаются три натуральных числа — a, b и k, каждое на новой строке. Все числа не превосходят 1000 и выполняется условие a ≤ b. Формат выходных данных: В единственной строке через пробел выведите все подходящие числа в порядке возрастания.
Ответы на вопрос
Отвечает Гафуров Игорь.
Решение задачи на Python
Для решения задачи необходимо перебрать все числа от a до b и для каждого вычислить сумму его делителей.
Алгоритм решения:
Считываем три натуральных числа
a,bиk.Перебираем все числа
nотaдоbвключительно.Для каждого числа находим сумму его делителей:
перебираем числа от
1доn;если
nделится на текущее число без остатка, добавляем его к сумме.
Если сумма делителей равна
k, выводим найденное число.Все числа выводятся в порядке возрастания.
Код на Python
Python
a = int(input())
b = int(input())
k = int(input())
for n in range(a, b + 1):
s = 0
for d in range(1, n + 1):
if n % d == 0:
s += d
if s == k:
print(n, end=' ')
Пример работы
Пусть входные данные:
Обычный текст
1
10
8Числа от 1 до 10, сумма делителей которых равна 8:
- 7: делители 1 и 7, сумма равна 8.
Выходные данные:
Обычный текст
7Сложность алгоритма: . При ограничении такой алгоритм работает достаточно быстро.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

