*(Д. Статный) Среди натуральных чисел, принадлежащих промежутку \([100~000~000; \, 200~000~000],\) найдите все числа, имеющие ровно \(7\) делителей, делящихся на \(2022\) и отличных от самого числа. В ответ запишите \(5\) наименьших и \(5\) наибольших найденных чисел в порядке возрастания, справа от них укажите их максимальный делитель, отличный от самого числа.
Решение:
Python
from math import isqrt
def divs(n):
res = set()
for x in range(2, isqrt(n) + 1):
if n % x == 0:
res.add(x)
res.add(n // x)
return res
st = 100_000_000 // 2022 * 2022 + 2022
q = 0
for n in range(st, 200_000_000, 2022):
d = divs(n)
if len([x for x in d if x % 2022 == 0]) == 7:
print(n, max(d))
q += 1
if q == 5:
break
res = []
q = 0
for n in range(200_000_000 // 2022 * 2022, 100_000_000, -2022):
d = divs(n)
if len([x for x in d if x % 2022 == 0]) == 7:
res.append((n, max(d)))
q += 1
if q == 5:
break
for n, d in res[::-1]:
print(n, d)
Ответ:
\(100004076 \,\, 50002038\)
\(100012164 \,\, 50006082\)
\(100018230 \,\, 50009115\)
\(100022274 \,\, 50011137\)
\(100026318 \,\, 50013159\)
\(199947492 \,\, 99973746\)
\(199963668 \,\, 99981834\)
\(199981866 \,\, 99990933\)
\(199985910 \,\, 99992955\)
\(199987932 \,\, 99993966\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене