题解 | 质数因子
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
def euler_sieve(x):
isprime = [True]*(x+2)
primes = []
for i in range(2,x+1):
if isprime[i]:
primes.append(i)
for j in primes:
if j*i > x:
break
isprime[j*i] = False
if i%j == 0:
break
return primes
n = int(input())
l = []
primes = euler_sieve(int(n**0.5)+3)
index = 0
maxindex = len(primes)-1
while n != 1 and index != maxindex:
if n%primes[index] == 0:
n //= primes[index]
l.append(primes[index])
else:
index += 1
if n != 1:
l.append(n)
print(" ".join(map(str,l)))

