티스토리 뷰
- 2의 거듭제곱
- 소수 p의 거듭제곱
- 4의 거듭제곱
1) 2의 거듭제곱
n > 0 && (n & (n-1)) == 0
- 2의 거듭제곱(1, 2, 4, 8, …)은 이진수로 0001, 0010, 0100, 1000 형태
= 이진수 표현에서 2의 거듭제곱은 항상 1개의 비트만 켜져 있음 - 따라서 n과 n-1은 공통 비트가 없음 → n & (n-1) == 0
2) 소수 p의 거듭제곱
가정: 어떤 소수 p에 대하여 표현 가능한 최대 거듭제곱을 p^k
다음 식이 성립하면 n은 반드시 p의 거듭제곱이다.
n > 0 && (p^k % n == 0)
이유
- p^k는 소수 p의 순수 거듭제곱이므로
- p^k의 약수는 오직 1, p, p^2, …, p^k
- 따라서 p^k를 나눌 수 있는 수는 p의 거듭제곱 외에는 없다
소수 p | 최대 거듭제곱 (int 범위) | 판별식 |
2 | 2^30 = 1,073,741,824 | n > 0 && 1073741824 % n == 0 |
3 | 3^19 = 1,162,261,467 | n > 0 && 1162261467 % n == 0 |
5 | 5^13 = 1,220,703,125 | n > 0 && 1220703125 % n == 0 |
7 | 7^11 = 1,977,326,743 | n > 0 && 1977326743 % n == 0 |
3) 4의 거듭제곱
n > 0 && (n & (n-1)) == 0 && n % 3 == 1
- 4의 거듭제곱은 2의 거듭제곱 중에서 n % 3 == 1인 값들
예시
- 4 % 3 = 1
- 16 % 3 = 1
- 64 % 3 = 1
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- child subtree availability
- .b3dm
- sendfile()
- event streaming
- 3d tiles 1.0
- z-order
- the unix timesharing system
- transferto()
- append only
- kernel space
- b3dm
- user space
- zero-copy
- morton order
- redis
- 오차 최소화
- Live BMW
- content availability
- cpu i/o
- Cesium
- implicit tiling
- redis bgsave
- z-order curve
- 머신러닝
- tile availability
- explicit tiling
- bgsave
- event srource
- implict titling
- Kafka
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함