力扣(C语言)762. 二进制表示中质数个计算置位
#include<stdio.h>
int countPrimeSetBits(int L, int R){
int prime=0;
for(int i=L;i<=R;i++)
{
int temp=0;
int count=0;
for(int j=0;(i>>j)>0;j++)
{
if((i>>j) & 1)
count++; //计算置位的个数
}
if(count==2)
prime++;
if(count<2)
temp=0;
if(count>2)
{
for(int j=2;j<count;j++) //判断计算置位的个数是否为质数
{
if(count%j==0) //不是质数
{
temp=0;
break;
}
else
{
temp=1;
}
}
}
if(temp)
{
prime++;
}
count=0;
temp=0;
}
return prime;
}
int main()
{
int num = countPrimeSetBits(10,15);
printf("%d",num);
return 0;
}