762 leetcode 二进制表示中质数个计算置位

题目描述:
在这里插入图片描述
思路:
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;
    }
};

发布了123 篇原创文章 · 获赞 0 · 访问量 953

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104357323