酷代码 AI
菜单

因数:又称为约数,如果整数 𝑎 除以整数 𝑏 的商正好是整数而没有余数,我们就说 𝑏 是 𝑎 的因数 质数:又称为素数,一个大于 1 的自然数,除了 1 和它自身外,不能被其他自然数整除的数叫做质数。 2 是最小的质数 质因数:如果一个数 𝑎 的因数 𝑏 同时也是质数,那么 𝑏 就是 𝑎 的一个质因数,例如: 8 = 2 ∗ 2 ∗ 2 , 2 就是 8 的质因数, 12 = 2 ∗ 2 ∗ 3 , 2 和 3 就是 12 的质因数。 给定两个正整数 𝑁 和 𝑀 ( 1 <= 𝑁 <= 𝑀 <= 10 7 ) ,统计 𝑁 到 𝑀 之间(含 𝑁 和 𝑀 )每个数所包含的质因数的个数,输出其中最大的个数。 例如: 当N=6,M=10,6到10之间 6的质因数是2、3,共有2个 7的质因数是7,共有1个 8的质因数是2、2、2,共有3个 9的质因数是3、3,共有2个 10的质因数是2、5,共有2个 6到10之间的数中质因数最多的是8,质因数有3个,故输出3。 样例输入 复制 6 10 样例输出 复制 3

```python def max_prime_factors_count(N, M): # 计算每个数的质因数个数 # 使用数组存储每个数的质因数个数 max_num = M factor_count = [0] * (max_num + 1) # 使用筛法计算每个数的质因数个数 for i in range(2, max_num + 1): if factor_count[i] == 0: # i是质数 for j in range(i, max_num + 1, i): # 计算j中质因数i的个数 temp = j while temp % i == 0: factor_count[j] += 1 temp //= i # 找到N到M之间的最大质因数个数 max_count = 0 for num in range(N, M + 1): if factor_count[num] > max_count: max_count = factor_count[num] return max_count # 读取输入 N, M = map(int, input().split()) # 输出结果 print(max_prime_factors_count(N, M)) ``` [2026-01-18 12:43:51 | AI问答 | 245点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多