Рассматриваются целые числа, принадлежащих числовому отрезку \([309829; \, 365874],\) которые представляют собой произведение двух различных простых делителей. Найдите такое из этих чисел, у которого два простых делителя меньше всего отличаются друг от друга. В ответе запишите простые делители этого числа в порядке возрастания. Если подходящих чисел несколько, запишите в ответе делители наименьшего из них.
Решение:
Python
def factor(n):
ans = []
for i in range(2, int(n**0.5)+1):
while n % i == 0:
ans.append(i)
n //= i
if n > 1:
ans.append(n)
return ans
res = []
md = float('inf')
a = []
for n in range(309829, 365875):
divs = factor(n)
if len(divs) == len(set(divs)) == 2:
res.append(n)
if max(divs) - min(divs) < md:
md = max(divs) - min(divs)
a = sorted(divs)
print(*a)
Ответ: \(569 \,\, 571\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене