n = int(input()) factors = [] while n % 2 == 0: factors.append(2) n //= 2 d = 3 while d * d <= n: while n % d == 0: factors.append(d) n //= d d += 2 if n > 1: factors.append(n) print(" ".join(map(str, factors))) 先把偶数的质数都提取出来,后面递增求因子就不用再额外找偶数因子,然后剩下的因子都会是奇数。