题目描述:
思路:
1、编写一个判断质数的函数
2、然后计算它的二进制的中1的个数
3、统计其中是质数的个数
代码如下:
class Solution {
public:
bool IsPriNum(int m){
if(m==1) return false;
for(int i=2;i*i<=m;i++){
if(m%i==0)
return false;
}
return true;
}
int countPrimeSetBits(int L, int R) {
int sum=0;
for(int i=L;i<=R;i++){
int cnt=0;
int temp=i;
while(temp!=0){
if(temp%2==1)
cnt++;
temp/=2;
}
if(IsPriNum(cnt)==true)
sum++;
}
return sum;
}
};