Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 이진 표현에서 설정된 비트의 소수

<시간/>

두 개의 정수 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