(Д. Муфаззалов) На отрезке \([2;~14]\) найдите пять наибольших натуральных чисел, факториал каждого из которых имеет нечетное количество простых делителей. Выведите найденные числа в порядке убывания, справа от каждого числа – количество простых делителей его факториала.
Решение:
Python
from math import isqrt
def sieve(n):
tmp = [True] * (n + 1)
tmp[0] = tmp[1] = False
for i in range(2, isqrt(n) + 1):
if tmp[i]:
for j in range(i**2, n+1, i):
tmp[j] = False
return [i for i in range(2, n+1) if tmp[i]]
q = 0
for n in range(14, 1, -1):
lp = len(sieve(n))
if lp % 2 == 1:
print(n, lp)
q += 1
if q == 5:
break
Ответ:
\(12 \,\, 5\)
\(11 \,\, 5\)
\(6 \,\, 3\)
\(5 \,\, 3\)
\(2 \,\, 1\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене