Python判断质数并求质因数

如何写一个判断输入整数是否是质数,若不是求其质因数的程序,要求用列表输出。

具体实现代码如下:

n = int(input("请输入一个整数:"))
factors = []

# 判断是否为质数
if n < 2:
    print(n, "不是质数")
else:
    prime = True
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            prime = False
            factors.append(i)
            while n % i == 0:
                n //= i
    if n > 1:
        factors.append(n)
    if prime:
        print(n, "是质数")
    else:
        print("质因数列表:", factors)

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7610224
  • 这篇博客也不错, 你可以看下python 已知一个列表存储了多个整数,请编写函数,删除列表中的素数。
  • 同时,你还可以查看手册:python- 用列表实现队列 中的内容
  • 除此之外, 这篇博客: Python函数对象,一切皆对象概念,将函数作为变量值使用中的 函数对象练习: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    使用传统写法、重复代码较多

    def login():
        print('login')
    
    def register():
        print('register')
    
    def transfer():
        print('transfer')
    
    def withdraw():
        print('withdraw')
    
    while True:
        choice = input('输入操作编号:').strip()
        print('''
            0、退出
            1、登录
            2、注册
            3、转账
            4、提现
        ''')
        # 功能越多,分支结构越长
        if choice == '0':
            break
        elif choice == '1':
            login()
            
        elif choice == '2':
            register()
        
        elif choice == '3':
            transfer()
        
        elif choice == '4':
            withdraw()
    

    经过函数对象优化后写法

    # 写好功能函数
    def login():
        print('login')
    
    def register():
        print('register')
    
    def transfer():
        print('transfer')
    
    def withdraw():
        print('withdraw')
    
    # 将函数对象集合在字典里的列表,并添加了提示信息
    fun_dic = {
        '1':[login,'转账'],
        '2':[register,'注册'],
        '3':[transfer,'转账'],
        '4':[withdraw,'体现']
    }
    
    while True:
        print('0 退出登录系统')   # 没有0 补充添加
    
        for k,v in fun_dic.items():	# 省略了之前的较长的提示信息内容
            print(k,v[-1])  # 打印出提示信息
            # 编号 以及列表最后一位的内容
    
        choice = input('输入操作编号:').strip()
    
        if choice == '0':
            break
    
        if choice in fun_dic:   # 判断输入的编号是否对应字典的key
            fun_dic[choice][0]()    # 调用字典里面 对应编号的列表里面的函数对象
            # 通过key找到 列表下面的第一个元素也就是函数对象 括号执行
    
        else:   # 表示输入的编号不存在
            print('没有这个选项,请重新输入')
    

    技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点赞收藏+关注 谢谢支持!

  • 您还可以看一下 jeevan老师的Python量化交易,大操手量化投资系列课程之内功修炼篇课程中的 量化交易学习路线-上小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^