Заставить переменную запомнить прошлый вводPython

Программы на Python
Ответить
Anonymous
 Заставить переменную запомнить прошлый ввод

Сообщение Anonymous »

Я пытаюсь создать алгоритм, который показывает, из каких простых чисел состоит число. Я создал следующий код (не оптимизированный), который делит число на два числа, из которых оно состоит. Затем я делаю это, пока не найду, из каких базовых чисел (простых чисел) состоят эти числа. У меня проблема: я продолжаю сбрасывать окончательный список и не хочу использовать глобальную переменную. Есть идеи, как это сделать правильно?
Ожидаемый результат следующего кода должен быть [2,2,5,7], поскольку 4 x 35 = 140.

Код: Выделить всё

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 += [i]
v += [j]
return v

def is_prime_list(v:list[int]) -> bool:
for i in range(0, len(v)):
if is_prime(v[i])!= 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[i])==True:
w += [v[i]]
else:
p += made_of(v[i])
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 ... past-input
Ответить

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

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

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

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

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