Функция поиска простых множителей перезаписывает части своих результатовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Функция поиска простых множителей перезаписывает части своих результатов

Сообщение Anonymous »

Я пытаюсь создать алгоритм, который показывает, из каких простых чисел состоит число. Я создал следующий код (не оптимизированный), который делит число на два числа, из которых оно состоит. Затем я делаю это, пока не найду, из каких базовых чисел (простых чисел) состоят эти числа. У меня проблема: я постоянно сбрасываю окончательный список и не хочу использовать глобальную переменную.
Есть идеи, как это сделать правильно?
Ожидаемый результат следующего кода должен быть [2, 2, 5, 7], поскольку 4 × 35 = 140, 2 × 2 = 4 и 5 × 7 = 35. >
def is_prime(n:int) -> bool:
if n==2 or n==3:
return True
for i in range(3, n//2+1):
if n%i==0:
return False
return True

def made_of(n:int) -> list[int]:
v = []
for i in range(2, n//2+1):
for j in range(2, n//2+1):
if i*j==n:
v +=
v += [j]
return v

def is_prime_list(v:list[int]) -> bool:
for i in range(0, len(v)):
if is_prime(v)!= True:
return False
return True

def made_of_prime(v:list[int]) -> list[int]:
p = []
w = []
if is_prime_list(v)==False:
for i in range(0, len(v)):
if is_prime(v)==True:
w += [v]
else:
p += made_of(v)
return made_of_prime(p)
else:
w += v
return w
return w

if __name__=="__main__":
print(made_of_prime(made_of(140)))


Подробнее здесь: https://stackoverflow.com/questions/793 ... ts-results
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»