要求实现一个程序,该程序读取一个正整数n(n>1),如果它是素数,则输出"n是素数";如果不是素数,则输出其质因子乘积的表达式,且质因子需要从小到大排列。 以下是Python代码实现: ```python def is_prime(num): if num <= 1: return False for i in range(2, int(num**0.5) + 1): if num % i == 0: return False return True def prime_factors(num): factors = [] for i in range(2, num + 1): while num % i == 0 and i not in factors: factors.append(i) num //= i return factors def main(): n = int(input().strip()) if n <= 1: print("输入的数字应大于1") return if is_prime(n): print(f"{n}是素数") else: factors = prime_factors(n) factors_str = "*".join(map(str, factors)) print(f"{n}={factors_str}") if __name__ == "__main__": main() ``` ### 解释: 1. **is_prime函数**:判断一个数字是否为素数。如果是素数返回True,否则返回False。 2. **prime_factors函数**:获取一个数字的所有质因子,并按从小到大的顺序返回这些质因子的列表。 3. **main函数**:读取输入的数字n,调用`is_prime`函数判断它是否为素数。如果是素数,直接输出结果;如果不是素数,调用`prime_factors`函数获取质因子列表,并将其格式化为字符串输出。 ### 示例: - 输入:2 - 输出:2是素数 - 输入:100 - 输出:100=2*2*5*5 [2024-11-20 15:37:17 | AI写代码神器 | 478点数解答]