Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([143146; \, 143215],\) числа, имеющие ровно 6 различных делителей. Выведите для каждого найденного числа два его наибольших делителя, не равных самому числу, в порядке возрастания.
Решение:
Python
for n in range(143146, 143216):
ds = {d for i in range(1, int(n**0.5) + 1) if n % i == 0
for d in (i, n // i)}
if len(ds) == 6:
div = sorted(list(ds))
print(div[-3], div[-2])
Ответ:
\(15907 \,\, 47721\)
\(35797 \,\, 71594\)
\(961 \,\, 4619\)
\(35801 \,\, 71602\)
\(35803 \,\, 71606\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене