```python def is_prime(num): # 判断是否为素数 if num <= 1: return False for i in range(2, int(num0.5) + 1): if num % i == 0: return False return True def prime_factors(num): # 获取所有质因子 factors = [] i = 2 while i * i <= num: if num % i: i += 1 else: num //= i factors.append(i) if num > 1: factors.append(num) return factors def main(): n = int(input()) if is_prime(n): print(f"{n}是素数") else: factors = prime_factors(n) factor_str = " * ".join(map(str, factors)) print(f"{n}={factor_str}") main() ``` 需要注意的逻辑点: 1. 判断素数时,只需要检查到 `sqrt(n)` 即可,因为如果 `n` 有大于 `sqrt(n)` 的因数,那么它一定有一个小于 `sqrt(n)` 的因数。 2. 获取质因子时,每次找到一个质因子后,都要将 `num` 除以该质因子,直到 `num` 不能被该质因子整除为止。 3. 最终输出的质因子列表中,每个质因子都是从小到大排列的,确保输出格式正确。 [2024-12-11 10:14:52 | AI写代码神器 | 320点数解答]