不用判断除数是否是素数,因为我们是从2开始的,如果不是素数的话,在前面除以2这一步就会被分解掉。 num = int(input()) times = int(num ** (1/2)) for i in range(2, times + 1, 1): while 0 == num % i: num //= i print(i, end=' ') if num != 1: print(num)