项目场景:
提示:这里简述项目相关背景:
python练习题
问题描述:
提示:这里描述项目中遇到的问题:
输入一个正整数n,把数字n分解成不能再分解因子的乘法,比如:8=222, 10 = 2*5,而不是 8 = 2 * 4 这种可以再分解的。
原因分析:
提示:这里填写问题的分析:
要找到所有的质因子可以从2依次对该数或者该数的因子取余,除尽则判断是不是质数,是质数则添加到list1, 为了提高效率在每次整除后,可以判断商是否是质数,如果是就break,以后基本上不会进入if语句
解决方案:
提示:这里填写该问题的具体解决方案:
num = eval(input())
list1 = [] # 存放因子
# 判断素数
def is_Prime(num):
for i in range(2, num):
if num % i == 0:
return False
else:
continue
return True
def fun(num):
for i in range(num): # 控制循环次数
for j in range(2, num): # 寻找质数因子
if num % j == 0:
if is_Prime(j):
list1.append(j)
num = num // j
if is_Prime(num): # 判断分解完一次后,该数是否是质数
list1.append(num)
break
break
fun(num)
print(list1)