Я пытаюсь создать алгоритм, который показывает, из каких простых чисел состоит число. Я создал следующий код (не оптимизированный), который делит число на два числа, из которых оно состоит. Затем я делаю это, пока не найду, из каких базовых чисел (простых чисел) состоят эти числа. У меня проблема: я постоянно сбрасываю окончательный список и не хочу использовать глобальную переменную.
Есть идеи, как это сделать правильно?
Ожидаемый результат следующего кода должен быть [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
Функция поиска простых множителей перезаписывает части своих результатов ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Функция поиска простых множителей перезаписывает части своих результатов
Anonymous » » в форуме Python - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-