Пусть М — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение М считается равным нулю.
Напишите программу, которая перебирает целые числа, большие 800 000, в порядке возрастания и ищет среди них такие, для которых значение М оканчивается на 4. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце - соответствующие им значения M.
Например, для числа 20 M = 2 + 10 = 12.
Решение:
Решение на Python:
#Добавляем функцию проверки делителей числа:
def dels(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 d
k = 0
for x in range(800000, 2000000) :
#Создаем список с делителями и проверяем все условия:
d = dels(x)
if len(d) > 0:
M = max(d) + min(d)
else:
M = 0
if M % 10 == 4:
print(x, M)
k += 1
if k >= 5: break
Ответ:
| 800004 | 400004 |
| 800009 | 114294 |
| 800013 | 266674 |
| 800024 | 400014 |
| 800033 | 61554 |
Ответ: