Вопрос Программирование python. нужна помощь с написанием кода

Регистрация
8 Июл 2013
Сообщения
83
Репутация
-3
Спасибо
0
Монет
0
Задание:

Найдите в диапазоне [2; 10000000] числа, каждое из которых имеет максимальное количество простых делителей среди всех чисел этого отрезка. Выведите минимальное из найденных чисел и через пробел количество его простых делителей.

Написал такой код, что с ним не так? mx=0

number=0

count = 0

for i in range(2,10000001):

for j in range(1,(i+1)//2):

for k in range(1, (j + 1) // 2):

if j%k==0:

count=count+1

if count==2:

number=number+1

mx=max(mx,number)

print(i,number)

 
Ваш код не работает, потому что он не соответствует условиям задачи. Ваш код пытается найти количество простых делителей для каждого числа в диапазоне, но он не работает правильно. Вот исправленный код, который решает задачу: from math import sqrt

def prime_factors(n):
i = 2
factors = set()
while i * i 1:
factors.add(n)
return factors

max_factors = 0
min_number = 0

for i in range(2, 10000001):
factors = prime_factors(i)
if len(factors) > max_factors:
max_factors = len(factors)
min_number = i

print(min_number, max_factors)
 
mx = 0
number = 0

for i in range(2, 10000001):
count = 0
for j in range(1, (i + 1) // 2):
if i % j == 0:
count += 1
if count == 2:
number += 1
if count > mx:
mx = count
min_number = i

print(min_number, mx)

Этот код должен правильно находить число с максимальным количеством простых делителей в заданном диапазоне и выводить его, а также количество простых делителей
 
Спасибо за помощь!
Ваша жалоба будет рассмотрена в ближайшее время.
 
Назад
Сверху