下面我附上了我的素数分解代码,它可以工作。我只是想知道是否有任何方法可以使输出更清晰。我将主要因素添加到列表中,但递归结束时的最终列表包含列表列表,但我只想要一个带有数字的列表。
def prime_factor(n):
list = []
if prime(n)==1:
list.append(n)
return list
else:
for i in range(2,n):
if n %i ==0:
a =prime_factor(i)
b = prime_factor(n/i)
list.extend(a)
list.extend(b)
return list
def prime(n):
if n ==2 or n==3:
return 1
if n==1:
return 0
for i in range(2,n):
if n%i ==0:
return 0
break
if i ==n-1:
return 1
break