酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

一行读入一个正整数n(n>1),如果它是素数,则另一行给出是素数的信息,否则另一行输出它的质因子乘积的表达式,且要求打印的质因子从小到大(1不是质因子) 分数 10 作者 zju-mbq 单位 浙江大学 一行读入一个正整数n(n>1),如果它是素数,则另一行给出是素数的信息,否则另一行输出它的质因子乘积的表达式,且要求打印的质因子从小到大(1不是质因子) 输入格式: 一行中输入2 输出格式: 2是素数 输入样例: 在这里给出一组输入。例如: 100 输出样例: 在这里给出相应的输出。例如: 100=2*2*5*5

要求实现一个程序,该程序读取一个正整数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点数解答]

相关提问