Python项目实现之分解质因数

你好,欢迎查看我的第四个笔记。本人是某不知名大学数学系大一新生,由于对计算机感兴趣,所以跟着B站上老师学习python语言。每道题目我都尽我所能地讲清楚,如果有什么看不懂的地方欢迎在评论区留言,大家一起学习共同进步。

项目9:分解质因数

         例如:   |    输入:45            |

                       |    输出 45=3*3*5    |

解析:

1.     先创建一个判断输入的数是否为质数的函数

        若传入的参数n为质数,返回flag=Ture;反之返回False

        详情见第一弹项目1:

def zhishu(n):#创建一个判断质数的函数,若n为质数,flag=Ture;反之False
    flag=True
    for i in range(2,n):
        if n%i==0:
            flag=False
            break
    return flag

2.     把所有的质因数放在一个列表(zhi)中

num=int(input("num="))
n=num#下面的操作都是对n做的,起到一个保护num变量的作用
zhi=[]#创建一个空列表,用来存放质因数

while not zhishu(n):#当n不是质数时
    for i in range(2,n):
        if n%i==0:#如果i是质因数
            zhi.append(i)#就把i放到zhi中
            n//=i#更新n,相当于 n=n//i
            break#条件成立的话就跳转到while,进行判断,再循环
if zhishu(n):#最终的n一定会变成质数,这时n不再进入while循环,因此我们需要把这个质数放在zhi里面
    zhi.append(n)

为什么在第9行用n //=n,而不用n /=n呢?

        如果写成n /=n 将报错如下。翻译过来就是 float 类型不能被翻译为int 类型,言下之意,我们这里需要的是 int 类型,因此使用整除符号(//)。

3。   最后格式化输出

        用for循环遍历zhi中的所有元素(即num的所有质因数),再按照 zhi[x]* 的格式输出

        值得关注的是最后一项输出后没有尾巴的那个*,所以我们单独判断了一下。


 #下面就是输出语句了
print(f"{num}=",end='')
for x in range(len(zhi)):
    if x !=len(zhi)-1:
        print(f"{zhi[x]}*",end='')
    else:
        print(f"{zhi[x]}")

代码运行结果:

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值