두 개의 정수 L과 R이 있다고 가정하고 [L, R](포함) 범위에서 소수의 집합 비트가 있는 이진 형식의 숫자 개수를 찾아야 합니다.
따라서 입력이 L =6 및 R =10인 경우 출력은 4가 됩니다. 4개의 숫자 6(110),7(111),9(1001),10(1010)이 있고 모두 소수를 갖습니다. 설정 비트 수.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- 카운트:=0
- L~R 범위의 j에 대해 수행
- j의 설정 비트 수가 [2,3,5,7,11,13,17,19]이면
- 카운트 :=카운트 + 1
- 반환 횟수
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class 솔루션:def countPrimeSetBits(self, L, R):def popcount(i):return bin(i)[2:].count('1') count =0 for j in range(L,R+ 1):[2,3,5,7,11,13,17,19]의 popcount(j)인 경우:count +=1 return countob =Solution()print(ob.countPrimeSetBits(6,10))사전>입력
6,10출력
4