题目链接:762. 二进制表示中质数个计算置位
直接计算。python 里可以用 format 内置函数方便地获取一个数字的二进制表示。
class Solution:
def countPrimeSetBits(self, left: int, right: int) -> int:
def valid(val: int) -> bool:
return sum(map(int, format(val, 'b'))) in [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
return sum(valid(v) for v in range(left, right + 1))