*(Д. Статный) Среди натуральных чисел, принадлежащих промежутку \([100~000~000; \, 1~000~000~000],\) найдите все числа, имеющие ровно \(15\) делителей, делящихся на \(7\) и отличных самого числа. В ответ запишите \(5\) наименьших и \(5\) наибольших найденных чисел в порядке возрастания, справа от них укажите их максимальный делитель, отличный от самого числа.
Решение:
Python
from math import isqrt
from itertools import combinations
def divs(n):
d = set()
for x in range(2, isqrt(n) + 1):
if n % x == 0:
d.add(x)
d.add(n // x)
return list(d)
q = 0
for n in range(10**8 // 7 * 7 + 7, 10**9, 7):
dn = divs(n)
d7 = [d for d in dn if d % 7 == 0]
if len(d7) == 15:
print(n, max(dn))
q += 1
if q == 5:
break
q = 0
res = []
for n in range(10**9 // 7 * 7, 10**8, -7):
dn = divs(n)
d7 = [d for d in dn if d % 7 == 0]
if len(d7) == 15:
q += 1
res.append((n, max(dn)))
if q == 5:
break
for n, d in res[::-1]:
print(n, d)
Ответ:
\(100000054 \,\, 50000027\)
\(100000131 \,\, 33333377\)
\(100000222 \,\, 50000111\)
\(100000250 \,\, 50000125\)
\(100000264 \,\, 50000132\)
\(999999791 \,\, 142857113\)
\(999999798 \,\, 499999899\)
\(999999854 \,\, 499999927\)
\(999999875 \,\, 199999975\)
\(999999896 \,\, 499999948\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене