zoukankan      html  css  js  c++  java
  • Python练习实例014

    问题:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    # Author   : Ma Yi
    # Blog     : http://www.cnblogs.com/mayi0312/
    # Date     : 2020-06-18
    # Name     : demo014
    # Software : PyCharm
    # Note     : 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    
    
    def is_prime_num(i_num: int):
        """
        判断一个正整数是否是素数
        :param i_num: 需要判断的正整数
        :return:
        """
        flag = True  # 假设是素数
        # 质数(素数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
        for i in range(2, i_num // 2 + 1):
            if i_num % i == 0:
                # 能被1和它本身以外的数整除:不是素数
                flag = False
                break
    
        return flag
    
    # 入口函数
    if __name__ == '__main__':
        num = int(input("Please input num:"))
        temp_list = []
        if num < 3:
            print("%d=%d" % (num, num))
            exit()
        while not is_prime_num(num):
            for i in range(2, int(num // 2) + 1):
                if num % i == 0 and is_prime_num(i):
                    temp_list.append(str(i))
                    num //= i
                    break
        print("%d=%s" % (num, "*".join(temp_list)))

    运行结果:

    Please input num:90
    5=2*3*3
  • 相关阅读:
    Web实现大文件分片上传的方法
    kinova环境配置
    c++ stl list
    echarts饼图
    js函数
    飞浆测试日志
    IfcRevolvedAreaSolidTapered
    matlab一元二次方程求根
    运行日志
    常用的sql
  • 原文地址:https://www.cnblogs.com/mayi0312/p/13158753.html
Copyright © 2011-2022 走看看