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