leetcode 762. 二进制表示中质数个计算置位
2026/6/7 10:30:24 网站建设 项目流程

Problem: 762. 二进制表示中质数个计算置位

解题过程

log2计算二进制长度,然后统计1个数,查看集合是否是素数,计算是否是素数,若是则放入集合

Code

class Solution { public: int countPrimeSetBits(int left, int right) { int len, num, cnt = 0, tmp; unordered_set<int> primes; primes.insert(2); primes.insert(3); primes.insert(5); for(int i = left; i <= right; i++) { len = log2(i) + 2; bool isprime = true; num = 0; tmp = i; while(len--) { if((tmp&1)==1) { num++; } tmp = tmp >> 1; } if(num==1) continue; if(primes.find(num)!=primes.end()) { cnt++; continue; } for(int j = 2; j * j <= num; j++) { if(num%j==0) { isprime = false; break; } } if(isprime == true) { cnt++; primes.insert(num); } } return cnt; } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询