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