762. Prime Number of Set Bits in Binary Representation
Description
Given two integers left and right, return the count of numbers in the inclusive range [left, right] 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 1's present when written in binary.
- For example,
21written in binary is10101, which has3set bits.
ย
Example 1:
Input: left = 6, right = 10 Output: 4 Explanation: 6 -> 110 (2 set bits, 2 is prime) 7 -> 111 (3 set bits, 3 is prime) 8 -> 1000 (1 set bit, 1 is not prime) 9 -> 1001 (2 set bits, 2 is prime) 10 -> 1010 (2 set bits, 2 is prime) 4 numbers have a prime number of set bits.
Example 2:
Input: left = 10, right = 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) 5 numbers have a prime number of set bits.
ย
Constraints:
1 <= left <= right <= 1060 <= right - left <= 104
Solutions
ๆนๆณไธ๏ผๆฐๅญฆ + ไฝ่ฟ็ฎ
้ข็ฎไธญ \(\textit{left}\) ๅ \(\textit{right}\) ็่ๅดๅๅจ \(10^6\) ไปฅๅ ๏ผ่ \(2^{20} = 1048576\)๏ผๅ ๆญค๏ผไบ่ฟๅถไธญ \(1\) ็ไธชๆฐๆๅคไนๅฐฑ \(20\) ไธช๏ผ่ \(20\) ไปฅๅ ็่ดจๆฐๆ \([2, 3, 5, 7, 11, 13, 17, 19]\)ใ
ๆไปฌๆไธพ \([\textit{left},.. \textit{right}]\) ่ๅดๅ ็ๆฏไธชๆฐ๏ผ็ป่ฎกๅ ถไบ่ฟๅถไธญ \(1\) ็ไธชๆฐ๏ผ็ถๅๅคๆญ่ฏฅไธชๆฐๆฏๅฆไธบ่ดจๆฐ๏ผๅฆๆๆฏ๏ผ็ญๆกๅ ไธใ
ๆถ้ดๅคๆๅบฆ \(O(n\times \log m)\)ใๅ ถไธญ \(n = \textit{right} - \textit{left} + 1\)๏ผ่ \(m\) ไธบ \([\textit{left},.. \textit{right}]\) ่ๅดๅ ็ๆๅคงๆฐใ
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |