Найдите все натуральные числа, принадлежащие отрезку \([63~000~000; \, 75 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 63_000_000 <= p**4 * d <= 75_000_000:
ans.append((p**4 * d, p**4))
ans.sort()
for x, d in ans:
print(x, d)
Ответ:
\(63123848 \,\, 7890481\)
\(66724352 \,\, 130321\)
\(71639296 \,\, 279841\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене