Пусть S — сумма всех натуральных делителей целого числа, не считая единицы и самого числа.
Пусть K — количество всех различных простых делителей целого числа, не считая самого числа.
Напишите программу, которая перебирает целые числа, превышающие 4 333 795 и не оканчивающиеся на 9, в порядке возрастания и ищет среди них такие, которые можно представить в виде суммы чисел соответствующих им значений S, K и некоторого натурального числа, оканчивающегося на 29. В ответе запишите первые пять найденных чисел в порядке возрастания.
Ответ:
##Приведём решение на языке Python.
def f(x):
# Находим все натуральные делители, не считая 1 и x
divs = []
for i in range(2, int(x**0.5)+1):
if x % i == 0:
divs.append(i)
if i != x // i:
divs.append(x // i)
# Находим уникальные простые делители (не считая самого x)
primes = []
temp = x
d = 2
while d * d <= temp:
if temp % d == 0:
if d != x: # Не считая самого числа
primes.append(d)
while temp % d == 0:
temp //= d
d += 1
if temp > 1 and temp != x:
primes.append(temp)
return divs, len(primes)
count = 0
for x in range(4_333_796, 5_000_000):
# Числа не должны оканчиваться на 9
if x % 10 == 9:
continue
divs, K = f(x)
S = sum(divs)
N = x - S - K
# N должно быть натуральным (> 0) и оканчиваться на 29
if N > 0 and N % 100 == 29:
print(x)
count += 1
if count == 5:
break
Ответ: 4333870 4334131 4334545 4334554 4334611.

