# 方法一
# 判断素数
def isPrime(n):
if n < 2:
return False # 0和1不是素数
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
else: # 循环正常结束则执行
return True
composite_number = int(input())
ls = []
while True:
for i in range(2, composite_number + 1):
if composite_number % i == 0 and isPrime(i):
ls.append(i)
composite_number = int(composite_number / i)
break
else: # 循环正常结束时执行此语句后面的代码(换句话说就是for循环里面的break不能被执行,else后面的语句才会执行)
break
print(ls)
# 方法二
# def isPrime(n):
# for i in range(2, int(n / 2) + 1):
# if n % i == 0:
# return False
# return True
# n = int(input())
# a = [] # 存放质因子
# s = n
# i = 2
# while i <= int(n / 2):
# if s % i == 0 and isPrime(i):
# a.append(i)
# s /= i
# if isPrime(s): # 说明找到合数的最后一个分解质因数
# a.append(int(s))
# break
# i = 1 # 为了每次从2开始
# i += 1
# print(a)
01-22
5万+
5万+

被折叠的 条评论
为什么被折叠?



