酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

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]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]