Пусть 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