Задача #2878
Делители и маски
Обозначим через S сумму простых делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то считаем значение S равным нулю. Напишите программу, которая перебирает целые числа, большие 32 500 000 в порядке возрастания и ищет среди них такие, для которых значение S не равно нулю и кратно 145.
Программа должна найти первые 7 таких чисел. Для каждого из них в отдельной строке сначала выводится само число, затем значение S. Строки выводятся в порядке возрастания найденных чисел.
Количество строк для записи ответа избыточно.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
32500280
2755
32500301
58290
32500440
1450
32500623
17545
32500665
722245
32500700
7975
32500834
4785
def div(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 x in range(32_500_001,32_501_000):
d = [i for i in div(x) if len(div(i))==0]
S = sum(d)
if S!=0 and S%145==0:
print(x,S)
k += 1
if k==7: break