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 = [] divisor = 2 while divisor * divisor <= num: while (num % divisor) == 0: factors.append(divisor) num //= divisor divisor += 1 if num > 1: factors.append(num) return factors n = int(input()) if is_prime(n): print(f"{n} 是素数") else: factors = prime_factors(n) factor_str = ' * '.join(map(str, factors)) print(f"{factor_str} = {n}") ``` ### 需要注意的逻辑点: 1. 素数检查时,只需检查到平方根即可,这样可以提高效率。 2. 质因子分解时,从最小的质数2开始尝试除法,确保得到的都是质因子。 3. 最后一个条件 `if num > 1` 是为了处理剩余的大于1的质因子,确保所有质因子都被正确记录。 ######[AI写代码神器 | 282点数解答 | 2024-11-20 15:38:36]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)498
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)384
- 巴黎奥运:中国女排淘汰赛对决土耳其,朱婷成致胜关键!(字节豆包 | 448点数解答 | 2024-08-06 15:59:48)182
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)451
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)443
- Golang开发:解析JSON数据时数值默认类型及示例解析(百度文心 | 393点数解答 | 2023-11-09 18:13:06)312
- SQL Working Areas Sizing: Manual vs. Automatic Policy - A Comprehensive Analysis(阿里通义 | 530点数解答 | 2024-05-13 10:55:58)331
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)352
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)421
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)445
- Java调用Python接口中文乱码问题:字符编码统一解决方案(讯飞星火 | 344点数解答 | 2024-06-06 17:19:55)552
- 解决Java调用Python接口时中文值乱码问题:设置字符编码为UTF-8(讯飞星火 | 264点数解答 | 2024-06-06 17:27:09)418