Информатика задача, кто решит дам лучший ответ, не с нейросети а рабочим кодом на питоне - Общение Python мододелов

Вопрос Информатика задача, кто решит дам лучший ответ, не с нейросети а рабочим кодом на питоне

Регистрация
26 Июн 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
Обозначим через M разность максимального и минимального числа среди простых делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю. Напишите программу, которая перебирает целые числа, большие 550000, в порядке возрастания и ищет среди них такие, для которых значение M при делении на 27 даёт в остатке 12. Выведите первые 3 найденных числа в порядке возрастания, справа от каждого числа, через пробел, запишите соответствующее значения M
 
Регистрация
30 Май 2013
Сообщения
90
Репутация
0
Спасибо
1
Монет
0
using System;

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;
}

}
}

private static bool IsPrime
 
Регистрация
22 Июн 2013
Сообщения
75
Репутация
0
Спасибо
0
Монет
0
import math

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

:param n: Число, для которого ищем простые делители.
:return: Список простых делителей.
"""
factors = []
# Проверяем деление на 2
while n % 2 == 0:
factors.append(2)
n //= 2
# Проверяем нечетные делители
for i in range(3, int(math.sqrt(n)) + 1, 2):
while n % i == 0:
factors.append(i)
n //= i
# Если после всех проверок остается простое число > 2
if n > 2:
factors.append(n)
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}")
 
Регистрация
11 Ноя 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
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(n)
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)
 
Регистрация
12 Авг 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
помогаю

109322707_acd0b3249e5e302ceb751bc0f2d8c781_800.png

Вот результаты для задачи:

Число: 550002, M = 2955
Число: 550025, M = 444
Число: 550037, M = 66
 
Сверху Снизу