Пусть S – сумма всех простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то считаем значение S равным нулю.
Напишите программу, которая перебирает целые числа, меньшие 1 325 000, в порядке убывания и ищет среди них такие, для которых значение S не равно нулю, не больше 30 000 и кратно 5. В ответе запишите первые пять найденных чисел в порядке убывания.
Например, для числа 10 S = 2 + 5 = 7.
СтатГрад Вариант ИН2510101 23 октября 2025 – задание №25
Решение:
Решение на Python
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def p(x): return x > 1 and all(x % i != 0 for i in range(2, int(x**0.5) + 1)) def div(x): s = set() for i in range(2, int(x**0.5) + 1): if x % i == 0: if p(i): s.add(i) if p(x//i): s.add((x//i)) if s: return sum(s) return 0 k = 0 for x in range(1_325_000-1, 0, -1): if k == 5: break d = div(x) if d and d<=30_000 and d%5==0: k += 1 print(x) |
Ответ:
1324994
1324992
1324991
1324986
1324980
