Python 中二进制表示中的素数位数
假设我们有两个整数 L 和 R,我们要找出 [L, R](含)范围内,其二进制形式中存在素数位数的数的个数。
因此,如果输入类似 L = 6 和 R = 10,则输出将为 4,因为有 4 个数字 6(110)、7(111)、9(1001)、10(1010),它们都具有素数位数。
为解决此问题,我们将遵循以下步骤 -
- count := 0
- 对于从 L 到 R 的 j,执行
- 如果 j 的位数计数在 [2,3,5,7,11,13,17,19] 中,则
- count := count + 1
- 返回 count
让我们看看以下实现,以获得更好的理解 -
示例
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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP