Python:定义列表求:非素数所有素数因子之积(如100=2*2*5*5)

算法流程,这里举例表示
(输入一个)非素数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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值