Prime Number of Set Bits in Binary Representation
2018-02-01 00:00
561 查看
问题:
Given two integers
(Recall that the number of set bits an integer has is the number of
Example 1:
Example 2:
Note:
解决:
【题意】给一个数字区间范围,判断这个区间的数字的二进制形式中,1的个数为质数的数字共计多少个。
① 计算数的二进制表示中1的个数,然后判断这个个数是否为素数。
class Solution { //24ms
public int countPrimeSetBits(int L, int R) {
int res = 0;
for (int i = L;i <= R;i ++){
if (isPrime(Integer.bitCount(i))){
res ++;
}
}
return res;
}
public boolean isPrime(int n){
if (n == 1) return false;
if (n == 2 || n == 3) return true;
for (int i = 2;i <= Math.sqrt(n);i ++){
if (n % i == 0){
return false;
}
}
return true;
}
}
class Solution { //57ms
public int countPrimeSetBits(int L, int R) {
int res = 0;
for (int i = L;i <= R;i ++){
int count = countBits(i);
if (isPrime(count)){
res ++;
}
}
return res;
}
public int countBits(int n){
int count = 0;
do {
if ((n & 1) == 1){
count ++;
}
n = n >> 1;
}while (n != 0);
return count;
}
public boolean isPrime(int n){
boolean res = true;
if (n == 1) return false;
if (n == 2 || n == 3) return true;
for (int i = 2;i <= Math.sqrt(n);i ++){
if (n % i == 0){
res = false;
break;
}
}
return res;
}
}
Given two integers
Land
R, find the count of numbers in the range
[L, R](inclusive) having a prime number of set bits in their binary representation.
(Recall that the number of set bits an integer has is the number of
1s present when written in binary. For example,
21written in binary is
10101which has 3 set bits. Also, 1 is not a prime.)
Example 1:
Input: L = 6, R = 10 Output: 4 Explanation: 6 -> 110 (2 set bits, 2 is prime) 7 -> 111 (3 set bits, 3 is prime) 9 -> 1001 (2 set bits , 2 is prime) 10->1010 (2 set bits , 2 is prime)
Example 2:
Input: L = 10, R = 15 Output: 5 Explanation: 10 -> 1010 (2 set bits, 2 is prime) 11 -> 1011 (3 set bits, 3 is prime) 12 -> 1100 (2 set bits, 2 is prime) 13 -> 1101 (3 set bits, 3 is prime) 14 -> 1110 (3 set bits, 3 is prime) 15 -> 1111 (4 set bits, 4 is not prime)
Note:
L, Rwill be integers
L <= Rin the range
[1, 10^6].
R - Lwill be at most 10000.
解决:
【题意】给一个数字区间范围,判断这个区间的数字的二进制形式中,1的个数为质数的数字共计多少个。
① 计算数的二进制表示中1的个数,然后判断这个个数是否为素数。
class Solution { //24ms
public int countPrimeSetBits(int L, int R) {
int res = 0;
for (int i = L;i <= R;i ++){
if (isPrime(Integer.bitCount(i))){
res ++;
}
}
return res;
}
public boolean isPrime(int n){
if (n == 1) return false;
if (n == 2 || n == 3) return true;
for (int i = 2;i <= Math.sqrt(n);i ++){
if (n % i == 0){
return false;
}
}
return true;
}
}
class Solution { //57ms
public int countPrimeSetBits(int L, int R) {
int res = 0;
for (int i = L;i <= R;i ++){
int count = countBits(i);
if (isPrime(count)){
res ++;
}
}
return res;
}
public int countBits(int n){
int count = 0;
do {
if ((n & 1) == 1){
count ++;
}
n = n >> 1;
}while (n != 0);
return count;
}
public boolean isPrime(int n){
boolean res = true;
if (n == 1) return false;
if (n == 2 || n == 3) return true;
for (int i = 2;i <= Math.sqrt(n);i ++){
if (n % i == 0){
res = false;
break;
}
}
return res;
}
}
相关文章推荐
- 762. Prime Number of Set Bits in Binary Representation
- LC-Prime Number of Set Bits in Binary Representation
- 762. Prime Number of Set Bits in Binary Representation
- Prime Number of Set Bits in Binary Representation
- 762. Prime Number of Set Bits in Binary Representation
- LeetCode之Prime Number of Set Bits in Binary Representation(Kotlin)
- Counting-the-number-of-set-bits-in-an-integer
- count the number of "1" in the binary figure
- Binary representation of a given number
- java call oracle procudure setBoolean问题PLS-00306: wrong number or types of arguments in call to
- win10 ise 生成bit文件报错FATAL_ERROR:Bitstream:stanbsbitfile.c:3408:1.57 - Incorrect number of bits in
- Number of Bits in a Decimal Integer
- 1.求整数最大的连续0的个数 BinaryGap Find longest sequence of zeros in binary representation of an integer.
- How to set number of threads in OpenMP?
- Next higher number with same number of set bits
- [CareerCup] 5.2 Binary Representation of Real Number 实数的二进制表示
- 数据中聚类个数的确定(Determining the number of clusters in a data set)
- Count occurrences of a number in a sorted array with duplicates using Binary Search
- Find the number of subsets such that the sum of numbers in the subset is a prime number
- Count the number of bits that are on in an unsigned integer(计算一个无符整数中1Bit的个数)-- (1)