描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
数据范围: 1≤𝑛≤2×109+14 1≤n≤2×109+14
输入描述:
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
def prime_factors(n):
factors = []
# 处理2的情况
while n % 2 == 0:
factors.append(2)
n //= 2
# 处理奇数质数
for i in range(3, int(n**0.5) + 1, 2):
while n % i == 0:
factors.append(i)
n //= i
# 如果剩余的是一个质数
if n > 2:
factors.append(n)
return factors
def main():
import sys
input = sys.stdin.read().strip()
n = int(input)
factors = prime_factors(n)
# 打印结果,以空格分隔
print(' '.join(map(str, factors)))
if __name__ == "__main__":
main()