import math
def prime_factors

:
"""
Функция возвращает список простых делителей числа n.

aram n: Число, для которого ищем простые делители.
:return: Список простых делителей.
"""
factors = []
# Проверяем деление на 2
while n % 2 == 0:
factors.append(2)
n //= 2
# Проверяем нечетные делители
for i in range(3, int(math.sqrt

) + 1, 2):
while n % i == 0:
factors.append(i)
n //= i
# Если после всех проверок остается простое число > 2
if n > 2:
factors.append

return factors
def find_numbers():
"""
Функция находит первые три числа, которые соответствуют условиям задачи.
:return: Три первых подходящих числа и соответствующие им значения M.
"""
count = 0
num = 550001 # Начинаем проверку с числа 550001
result = [] # Хранит результат (число и значение M)
while count < 3:
factors = prime_factors(num)
if len(factors) >= 2:
max_factor = max(factors)
min_factor = min(factors)
M = max_factor - min_factor
if M % 27 == 12:
result.append((num, M))
count += 1
num += 1
return result
# Запускаем программу
result = find_numbers()
for num, M in result:
print(f"{num} {M}"
