334просмотров
50.8%от подписчиков
17 марта 2026 г.
Score: 367
"""Обозначим через S сумму делителей числа,
не являющихся простыми, кроме единицы и самого числа.
Если таких делителей у числа нет, то S равно нулю.
Напишите программу, которая перебирает нечетные целые числа,
меньшие 912673, в порядке убывания и ищет среди них первые 5 чисел,
которые кратны S. Для каждого из найденных чисел в отдельной строке
сначала выводится само число, затем значение S.
Строки выводятся в порядке убывания найденных чисел."""
def is_prime(x): d = 2 while d * d <= x: if x % d == 0: return False d += 1 return True
def sum_sost(x): s = 0 for d in range(2, int(x**0.5) + 1): if x % d == 0: if not(is_prime(d)): s += d if d * d != x and not is_prime(x//d): s+=x//d return s count = 0
for x in range(912671,0,-2): S=sum_sost(x) if S>0 and x % S == 0: print(x, S) count += 1 if count == 5: break
`