功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

# 输入处理
n = int(input("请输入一个正整数: "))
# 从最小的质数2开始
factor = 2
while factor * factor <= n:
# 如果能整除,则是质因子
    while n % factor == 0:
        print(factor, end=' ')
        n //= factor
    factor += 1
    # 如果最后剩下的n大于1,说明n本身也是一个质因子
if n > 1:
    print(n, end=' ')
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

本脚本的逻辑是将输入的正整数,从小到大不断分离质因数.

如输入36,第一次分解出质因数2,剩余18.

第二次分解出质因数2,剩余9.

则2已经无法分解出来了,factor+=1

继续分解质因数3,以此类推