华为机试HJ6质数因子
题目:
按照从小到大输出给定数值的质数因子
想法:
遍历判断从小到大的数值是否是给定数值的质数因子,是就直接输出,该方法输出的数值已经排序好了
import math
input_number = int(input())
# 循环判断提取所有是2的质数因子
while input_number % 2 == 0:
input_number = input_number // 2
print(2, end=" ")
# 判断从3开始的奇数是否是质数因子
for i in range(3, int(math.sqrt(input_number))+1, 2):
while input_number % i == 0:
print(i, end=" ")
input_number = input_number // i
if input_number > 2:
print(input_number)