Python 很好的素数因子,但我必须在列表中只给出不同的答案
我正试图为任何数字制作一个素数因子列表,但我只想要不同的数,所以我不需要8(2,2,2),我只想得到[2] 但我不知道怎么做Python 很好的素数因子,但我必须在列表中只给出不同的答案,python,distinct,factors,Python,Distinct,Factors,我正试图为任何数字制作一个素数因子列表,但我只想要不同的数,所以我不需要8(2,2,2),我只想得到[2] 但我不知道怎么做 def primes(n): primfac = [] d = 2 while d*d <= n: while (n % d) == 0: primfac.append(d) n //= d d += 1 if n > 1:
def primes(n):
primfac = []
d = 2
while d*d <= n:
while (n % d) == 0:
primfac.append(d)
n //= d
d += 1
if n > 1:
primfac.append(n)
return primfac
print(primes(18))
def素数(n):
primfac=[]
d=2
而d*d 1:
primfac.append(n)
返回primfac
印刷品(素数(18))
任何时候,只要有多个值,就可以获取它们的集合。如果需要列表,可以将其转换回列表:
列表(集合([2,2,2]))
整个函数现在看起来像:
def素数(n):
primfac=[]
d=2
而d*d 1:
primfac.append(n)
返回列表(集合(primfac))
将您的列表转换为一组,然后您就不会得到重复的值。我只是在搞乱一些东西,然后将其复制粘贴回去。我同意,除了最后一行之外,它应该保持不变,以保持清晰