1. Week4. 알고리즘(소수)
소수: 1과 자기 자신으로 밖에 안나누어 지는 수
(1은 소수가 아니다)
1. 2부터 n의 제곱근까지 순회
2. 에라토스테네스의 체
소수를 여러번 구할 경우
더 빨리 할 수 없을까?
Bool 배열의 용량을
줄일 수 없을까?
2. Week4. 알고리즘(소수)
소수: 1과 자기 자신으로 밖에 안나누어 지는 수
(1은 소수가 아니다)
Bool 타입을 정말 1bit로 표현하자
+
비트마스크를 사용하자
(c++, java 등의 bool 타입은 1byte)
3. 비트마스크를 활용한 에라토스테네스의 체
*k >> 3: k를 8로 나눈 몫
(인덱스)
k & 7: k를 8로 나눈 나머지
(sieve[몫]의 실제 자리)
3. Week4. 알고리즘(최대공약수)
최대공약수: 두 정수 a, b의 공통된 약수 중 가장 큰 수
유클리드 호제법
gcd(a, b) = gcd(b, r)
r = a%b
gcd(15, 9) = gcd(9, 6) = gcd(6, 3)
= gcd(3, 3) = gcd(3, 0) = 3