Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [174457; 174505], числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти два делителя в таблицу на экране с новой строки в порядке возрастания произведения этих двух делителей. Делители в строке таблицы также должны следовать в порядке возрастания.
Решение:
Python
def search_div(n):
divisors = set()
for i in range(2, int(n**0.5)+1):
if not n % i:
divisors.add(i)
divisors.add(n//i)
if len(divisors) > 2:
break
return divisors
for i in range(174457, 174506):
d = [*search_div(i)]
if len(d) == 2:
d.sort()
print(*d)
Ответ:
\(3 \,\, 58153\)
\(7 \,\, 24923\)
\(59 \,\, 2957\)
\(13 \,\, 13421\)
\(149 \,\, 1171\)
\(5 \,\, 34897\)
\(211 \,\, 827\)
\(2 \,\, 87251\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене