OpenFIPI 2.0

25

6

A81EC7

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

Напишите программу, которая перебирает целые числа, большие 452 021, в порядке возрастания и ищет среди них такие, для которых значение M при делении на 7 даёт в остатке 3. Вывести первые 5 найденных чисел и соответствующие им значения M.

Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем  значение М.

Строки выводятся в порядке возрастания найденных чисел.

 

Например, для числа 20 М = 2 + 10 = 12.

Количество строк в таблице для ответа избыточно.

 

Ответ:

 

 

 

 

 

 

452025 150678
452029 23810
452034 226019
452048 226026
452062 226033

def divs(x):
d = set()
for i in range(2, int(x ** 0.5) + 1):
if x % i == 0:
d.add(i)
d.add(x // i)
return sorted(d)

k = 0
for i in range(452022, 500000):
d = divs(i)
m = min(d) + max(d) if d else 0
if m % 7 == 3:
print(i, m)
k += 1
if k == 5:
break

Просмотреть отправленные ответы A81EC7