*(Д. Статный) Найдите все четные натуральные числа, принадлежащие полуинтервалу \([100~000~000; \, 1~000~000~000),\) у которых ровно \(39\) делителей. В ответ запишите сначала наименьшие \(5,\) а затем – наибольшие \(5\) таких чисел в порядке возрастания; справа от каждого числа укажите его максимальный нечётный делитель.
Решение:
Python
from math import isqrt
def is_prime(n):
if n <= 2:
return 2
if n & 1 == 0:
return False
for x in range(3, isqrt(n) + 1, 2):
if n % x == 0:
return False
return True
primes1 = [2, 3, 5]
primes2 = [p for p in range(2, 500) if is_prime(p)]
nums = []
for n1 in primes1:
for n2 in primes2:
if n1 == n2:
continue
cand = n1**12 * n2**2
if 10**8 <= cand < 10**9:
if n1 == 2:
nums.append((cand, n2**2))
elif n2 == 2:
nums.append((cand, n1**12))
nums.sort()
for n, d in nums[:5]:
print(n, d)
for n, d in nums[-5:]:
print(n, d)
Ответ:
\(100962304 \,\, 24649\)
\(108826624 \,\, 26569\)
\(114233344 \,\, 27889\)
\(122589184 \,\, 29929\)
\(131239936 \,\, 32041\)
\(893292544 \,\, 218089\)
\(939790336 \,\, 229441\)
\(971444224 \,\, 237169\)
\(976562500 \,\, 244140625\)
\(987467776 \,\, 241081\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене