Обозначим через M разность максимального и минимального числа среди простых делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю. Напишите программу, которая перебирает целые числа, большие 550000, в порядке возрастания и ищет среди них такие, для которых значение M при делении на 27 даёт в остатке 12. Выведите первые 3 найденных числа в порядке возрастания, справа от каждого числа, через пробел, запишите соответствующее значения M
class Main
{
static void Main()
{
int M = 0;
for (int i = 50001; i < 100000; i++)
{
int[] primeDivs = PrimeDivs(i);
if (primeDivs.Length == 0) continue;
int num = i;
foreach (int divisor in primeDivs)
{
num /= divisor;
}
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}"
def find_m_with_remainder_12_mod_27(start=550001, count=3):
from sympy import primefactors
from itertools import count as counter
results = []
for n in counter(start):
factors = primefactors
if len(factors) >= 2:
m = max(factors) - min(factors)
if m % 27 == 12:
results.append((n, m))
if len(results) == count:
return results
return results
for n, m in find_m_with_remainder_12_mod_27():
print(n, m)