본문 바로가기
Computer Science/Algorithm

제곱수, 2의 n 제곱인지 확인

by 데이터현 2021. 12. 29.

제곱수인지 확인

def isSquare(n): 
    return int(n ** 0.5) ** 2 == n

 

2의 n 제곱인지 확인

def isPowerOf2(n):
    return (n&(n-1))==0

2의 제곱은 비트로 나타낼 때 맨 왼쪽 비트만 1이고, n이 2의 제곱이라면 n-1 은 맨 왼쪽 비트가 0이고 그 오른쪽 비트들은 모두 1이게 됨.

따라서 n이 2의 거듭제곱이라면 n과 n-1을 and 연산 했을 때 0이 나오게 됨.

 

'Computer Science > Algorithm' 카테고리의 다른 글

#05 병합 정렬(Merge Sort)  (0) 2022.01.06
#04 퀵 정렬(Quick Sort)  (0) 2022.01.06
#03 삽입 정렬(Insertion Sort)  (0) 2022.01.05
#02 - 선택 정렬(Selection Sort)  (0) 2022.01.05
#01 거품정렬 (bubble sort)  (0) 2022.01.05

댓글