Funktion zum Finden von Primfaktoren überschreibt Teile ihrer ErgebnissePython

Python-Programme
Anonymous
 Funktion zum Finden von Primfaktoren überschreibt Teile ihrer Ergebnisse

Post by Anonymous »

Ich versuche einen Algorithmus zu erstellen, der zeigt, aus welchen Primfaktoren eine Zahl besteht. Ich habe den folgenden Code erstellt (nicht optimiert), der eine Zahl in die 2 Zahlen teilt, aus denen sie besteht. Dann mache ich das, bis ich herausgefunden habe, aus welchen Basiszahlen (Primzahlen) diese Zahlen bestehen. Ich habe das Problem, dass ich die endgültige Liste ständig zurücksetze und keine globale Variable verwenden möchte.
Irgendeine Idee, wie man das richtig macht?
Die erwartete Ausgabe des folgenden Codes sollte [2, 2, 5, 7] sein, da 4 × 35 = 140, 2 × 2 = 4 und 5 × 7 = 35.

Code: Select all

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)))

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post