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
  • 相关阅读:
    elasticsearch之建议器Suggester
    elasticsearch,kibana之相关配置
    elasticsearch之分析过程
    elasticsearch之mappings
    elasticsearch for Mac OS
    项目精讲
    博客园项目开发流程
    Django之auth模块
    DJango中间件
    DJango之模板层
  • 原文地址:https://www.cnblogs.com/mayi0312/p/13158753.html
Copyright © 2011-2022 走看看