Python实现计算指定区间内同时被两数整除的数的个数
以下是使用Python实现计算`n`到`m`之间(包括`n`和`m`)有多少个数能同时被`k`和`q`整除的代码: ```python def count_divisible_numbers(n, m, k, q): # 计算k和q的最小公倍数 def gcd(a, b): while b: a, b = b, a % b return a def lcm(a, b): return a * b // gcd(a, b) # 得到k和q的最小公倍数 least_common_multiple = lcm(k, q) # 计算第一个大于等于n的能被最小公倍数整除的数 first = ((n + least_common_multiple - 1) // least_common_multiple) * least_common_multiple # 计算最后一个小于等于m的能被最小公倍数整除的数 last = (m // least_common_multiple) * least_common_multiple # 计算满足条件的数的个数 if first <= last: return (last - first) // least_common_multiple + 1 return 0 # 示例输入 n = 1 m = 100 k = 2 q = 3 result = count_divisible_numbers(n, m, k, q) print(f"在 {n} 到 {m} 之间能同时被 {k} 和 {q} 整除的数的个数是: {result}") ``` ### 代码解释: 1. **`gcd`函数**:用于计算两个数的最大公约数,采用欧几里得算法实现。 2. **`lcm`函数**:用于计算两个数的最小公倍数,通过公式`lcm(a, b) = a * b // gcd(a, b)`计算。 3. **`count_divisible_numbers`函数**: - 首先计算`k`和`q`的最小公倍数。 - 然后找出`n`到`m`之间第一个和最后一个能被最小公倍数整除的数。 - 最后计算满足条件的数的个数。 ######[AI问答 | 510点数解答 | 2026-05-10 15:43:20]
- P2185判断质数问题的C++代码实现(字节豆包 | 396点数解答 | 2026-03-22 16:54:08)40
- C++ 实现:给定时间与时长,计算未来时间(字节豆包 | 323点数解答 | 2025-10-29 20:27:44)125
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)499
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)384
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)451
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)444
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)355
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)422
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)445
- Java调用Python接口中文乱码问题:字符编码统一解决方案(讯飞星火 | 344点数解答 | 2024-06-06 17:19:55)553
- 解决Java调用Python接口时中文值乱码问题:设置字符编码为UTF-8(讯飞星火 | 264点数解答 | 2024-06-06 17:27:09)418
- C++ 实现游戏赢家判断:巧妙找出满足和条件的最大数 (DeepSeek | 506点数解答 | 2025-06-20 16:18:09)130