Задача #2880

Делители и маски

Уровень ЕГЭ

Обозначим через F целую часть среднего арифметического всех простых делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то считаем значение F равным нулю. Напишите программу, которая перебирает целые числа, большие 9 500 000, в порядке возрастания и ищет среди них такие, для которых значение F не равно нулю и кратно 813.
Выведите первые 5 найденных числа в порядке возрастания и справа от каждого числа – соответствующее значение F.
Количество строк для записи ответа избыточно.

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

9500776
1626
9503921
678855
9504690
4878
9506575
9756
9506999
110568
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(9_500_001,9_510_000):
d = [i for i in div(x) if len(div(i))==0]
F = sum(d)//len(d) if len(d)>0 else 0
if F!=0 and F%813==0:
print(x,F)
k += 1
if k==5: break
Быстрый переход
Перейти к задаче