(А. Кабанов) Обозначим через \(F(N)\) целую часть среднего арифметического всех простых делителей целого числа \(N,\) не считая самого числа. Если таких делителей у числа нет, то считаем значение \(F(N)\) равным нулю. Найдите первые \(5\) целых чисел, больших \(9~500~000,\) для которых значение \(F(N)\) не равно нулю и кратно \(813.\) В ответе запишите найденные числа в порядке возрастания значений \(F(N),\) справа от каждого запишите соответствующее значение \(F(N).\)
Решение:
Python
def is_prime(n):
if n < 2:
return False
if n == 2:
return True
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def F(n):
divs = set()
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
d = n // i
if is_prime(i):
divs.add(i)
if is_prime(d):
divs.add(d)
return int(sum(divs) / len(divs)) if len(divs) > 0 else 0
q = 0
n = 9_500_000
ans = []
while q < 5:
n += 1
f = F(n)
if f > 0 and f % 813 == 0:
ans.append((f, n))
q += 1
ans.sort()
for f, n in ans:
print(n, f)
Ответ:
\(9500776 \,\, 1626\)
\(9504690 \,\, 4878\)
\(9506575 \,\, 9756\)
\(9506999 \,\, 110568\)
\(9503921 \,\, 678855\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене