Задача к ЕГЭ по информатике на тему «делители числа» №2

Пусть S — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение S равен нулю.

Напишите программу, которая перебирает целые числа, большие 1567 в порядке возрастания и ищет среди них такие, для которых значение S оканчивается на 7. Выведите первые три найденные числа и соответствующие им значения S. Строки выводятся в порядке возрастания найденных чисел.

Формат ввода ответа: число1 S1 число2 S2 число3 S3

c = 0
for i in range(1568, 2000):
    ds = set() # множество делителей
    for d in range(2, int(i**0.5)+1):
        if i % d == 0:
            ds.add(d)
            ds.add(i//d)
            break # после нахождения минимального и максимального нетривиальных делителей - выходим из цикла
    if len(ds) > 0 and (min(ds)+max(ds)) % 10 == 7: # если делители есть и их сумма оканчивается на 7
        c += 1
        print(i, (min(ds)+max(ds)))
    if c == 3:
        break

Ответ: 1570 787 1590 797 1610 807
Оцените статью
Я решу все!