题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
def is_prime(n):
if n <= 1:
return False
elif n <= 3:
return True
elif n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0:
return False
i += 2
else:
return True
def try(a = int(input())):
b = []
c = []
if is_prime(a):
print(int(a))
for i in [2,3,5]:
if not is_prime(a):
while a%i == 0:
print(i, end=' ')
a //= i
if is_prime(a):
print(int(a))
return
for i in range(7,a//2+1):
if is_prime(i):
b.append(i)
for i in b:
if a % i == 0:
c.append(i)
for i in c:
if not is_prime(a):
while a%i == 0:
print(i, end=' ')
a /= i
if is_prime(a):
print(int(a))
return
try()
