目录
题目描述
输入一个正整数,返回该整数的质数因子。质数因子从小到大排列在一行,以空格隔开每一个质数因子(最后一个数字后面也要包含空格)。
输入/输出描述
输入描述
输入一个正整数。例如:180
输出描述
输出正整数的质数因子,质数因子从小到大排序。例如:2 2 3 3 5
解决思路
合理的输入整数分两种场景:
1、输入的数字本身就是质数。那么输出结果只有该数字本身。
2、输入的数字是合数:
从2开始遍历,如果遍历到的数字是质数,且该数字是输入整数的因数,则该数字符合要求输出。否则继续遍历查询。找到质数因子后,整数除以质数因子,递归查找,直至本身不断的除以找到的质数因子变成质数结束递归。
代码
def find_factors(number):
"""
Print prime factors.
:param number: <int> number
:return: <None>
"""
is_prime = True
for i in range(2, int(number ** 0.5 + 2)):
if number % i == 0:
is_pr
Python实现质数因子分解

博客介绍了如何使用Python处理华为机试中关于质数因子的问题。对于输入的正整数,程序找出并按顺序输出其质数因子;而对于负整数,程序不作输出。解题思路涉及质数判断和因数分解,通过递归查找质数因子直到整数变为质数。文章提供了解决方案的代码及走读,并链接了相关函数的优快云博客资源。
最低0.47元/天 解锁文章
1047

被折叠的 条评论
为什么被折叠?



