• Python3练习:分解质因数


    代码如下:

    # 质数判断函数
    def is_prime(num):
        if num < 2:
            return False
        elif num == 2 or num == 3:
            return True
        else:
            for i in range(2, int(num**0.5) + 1):
                if num % i == 0:
                    return False
            return True
    
    
    # 质因数分解函数
    def prime_factorize(num):
        if num < 2:  # 非质数亦非合数
            print('"%s" have no prime factor.' % num)
            return 0
        if is_prime(num):  # 质数
            print('"%s" is prime number!' % num)
            return 0
        else:  # 合数
            pri_fac_list = []  # 用于保存质因数
            while 1:
                if is_prime(num):
                    pri_fac_list.append(num)
                    break
                for i in range(2, num//2 + 1):
                    if is_prime(i) and num % i == 0:  # i既是质数又是因数
                        pri_fac_list.append(i)
                        num = num // i
                        # print('TEST:num = %s' % num)
                        break  # 跳出for循环
        print(pri_fac_list)
    
    
    if __name__ == '__main__':
        global n
        try:
            n = int(input('Enter a number:').strip())  # 输入待分解的数
        except ValueError:
            print('Error! Please input a number.')  # 异常处理
            exit(1)
    
        prime_factorize(n)

    注意

    若不用 “global n” 将n声明为全局变量,Pycharm将在 “prime_factorize(n)” 处提示警告:

    Name 'n' can be not defined less... (Ctrl+F1)
    This inspection warns about local variables referenced before assignment.

    即赋值前引用局部变量。

    运行效果:

  • 相关阅读:
    【Jenkins】插件更改国内源
    【Jenkins】参数化引用
    【selenium】各种exception
    利用浏览器的console篡改cookie
    【python】django 分页器 Paginator 基础操作
    centos7 安装php7遇到的问题
    归并排序(自顶向下、原地归并)
    希尔排序
    插入排序
    选择排序
  • 原文地址:https://www.cnblogs.com/iouwenbo/p/10322803.html
Copyright © 2020-2023  润新知