依次计算[L,R]内每个十进制数字所包含的二进制1的个数:
class Solution {
public:
int find1num(int n)
{
int num=0;
while(n)
{
num++;
n = n&(n-1);
}
return num;
}
int countPrimeSetBits(int L, int R) {
int ans=0;
set<int> prime={2,3,5,7,11,13,17,19,23,29};
for(int i=L;i<=R;i++)
{
int num=find1num(i);
if(prime.count(num))
ans++;
}
return ans;
}
};