Найдите все натуральные числа, принадлежащие отрезку \([78~000~000; \, 85~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 78_000_000 <= p**4 * d <= 85_000_000:
ans.append((p**4 * d, p**4))
ans.sort()
for x, d in ans:
print(x, d)
Ответ:
\(78074896 \,\, 4879681\)
\(78675968 \,\, 2401\)
\(80604484 \,\, 20151121\)
\(81920000 \,\, 625\)
\(84934656 \,\, 81\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене