首页 文章资讯内容详情

Python二进制表示形式中设置位的素数

2026-06-04 1 花语

假设我们有两个整数L和R,我们必须找到在[L,R](含)范围内的二进制数形式的素数。

因此,如果输入像L=6和R=10,那么输出将是4,因为有4个数字6(110),7(111),9(1001),10(1010),都具有质数设置位数。

为了解决这个问题,我们将遵循以下步骤-

计数:=0

对于L到R范围内的j,执行

如果j的设置位计数在[2,3,5,7,11,13,17,19]中,则

数:=数+1

返回计数

让我们看下面的实现以更好地理解-

示例

class Solution: def countPrimeSetBits(self, L, R): def popcount(i): return bin(i)[2:].count(1) count = 0 for j in range(L,R+1): if popcount(j) in [2,3,5,7,11,13,17,19]: count +=1 return count ob = Solution() print(ob.countPrimeSetBits(6,10))

输入值

6,10

输出结果

4