算法流程,这里举例表示
(输入一个)非素数a为100,(输出该非素数的)所有素数因子之积(100=2*2*5*5)
判断因子是否为素数 ,从2开始判断
a 判断能否整除 素数因子(输出值)
100 100/2 2
50 50/2 2
25 25/5 5
5 5/5 5
补充:1不是素数
a=int(input('请输入一个数:'))
print('{}='.format(a),end='')
# 定义一个空列表存放所有素数因子
L=[]
# 从2开始 作为输入值a的除数(因子)
i=2
while a>1:
# 判断能否整除
if a%i==0:
#i+1保证循环范围包含本身,Python中此代码表示j取值范围range为2到i截止,不包含i+1
for j in range(2,i+1):
# 判断因数是否为素数,素数:因子只有1和自己本身
if i%j==0:
L.append(i)
a=a/i
# 不能够整除则递增i值
else:
i+=1
print(L)
#遍历列表并输出列表中值
for i in range(0,len(L)):
print(L[i],end='')
# 判断保证结尾不会多余一个乘号'*'
if i!=len(L)-1:
print('*',end='')
运行结果:
请输入一个数:100
100=[2, 2, 5, 5]
2*2*5*5