Найдите все натуральные числа, принадлежащие отрезку \([55~000~000; \, 60~000~000],\) у которых ровно пять различных нечётных делителей (количество чётных делителей может быть любым). В ответе перечислите найденные числа, справа от каждого числа запишите его наибольший нечётный делитель.
Решение:
Python
def is_prime(n):
if n <= 2:
return n == 2
if n & 1 == 0:
return False
for i in range(3, int(n ** 0.5) + 1, 2):
if n % i == 0:
return False
return True
pr = [p for p in range(3, 150, 2) if is_prime(p)]
p2 = [2**i for i in range(40)]
ans = []
for p in pr:
for d in p2:
if 55_000_000 <= p**4 * d <= 60_000_000:
ans.append((p**4 * d, p**4))
ans.sort()
for x, d in ans:
print(x, d)
Ответ:
\(55383364 \,\, 13845841\)
\(56796482 \,\, 28398241\)
\(58492928 \,\, 28561\)
\(59105344 \,\, 923521\)
\(59969536 \,\, 14641\)
\(59973152 \,\, 1874161\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене