Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([258274; \, 258297],\) числа, имеющие ровно \(4\) различных делителя. Выведите для каждого найденного числа два наибольших делителя в порядке возрастания.
Решение:
Python
for n in range(258274, 258298):
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) == 4:
div = sorted(list(ds))
print(div[-2], div[-1])
Ответ:
\(15193 \,\, 258281\)
\(1427 \,\, 258287\)
\(1493 \,\, 258289\)
\(36899 \,\, 258293\)
\(51659 \,\, 258295\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене