Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- level2
- 자료구조
- 빅-오
- list
- 수식트리
- 순열
- visited
- 맨하탄 거리
- 약수의 총 합
- Java
- 유클리드 거리
- 단체사진 찍기
- 스택
- interpolation search
- 큐
- 순차 리스트
- 프로그래머스
- 보간 탐색
- java 정규표현식
- 그리디
- 알고리즘
- 연결리스트
- 정렬
- LinkedList
- 유클리디안 거리
- 알고리즘 성능분석
- 탐욕법
- space complexity
- android
- 양방향 연결 리스트
Archives
- Today
- Total
개발자로 살아남기
소수 판별 (에라토스테네스의 체) 본문
에라토스테네스의 체
에라토스테네스의 체 (위키)
- 어떤 수가 소수인지 판별할 수 있는 방법
- 2의 배수부터 지우고(자기자신 제외) 다음 숫자로 넘어가 3의 배수를 지우고(자기자신 제외)를 반복
- 지운 숫자에 접근할 경우 다음 숫자로 넘어감
public int eratosthenes(int n){
int[] arr = new int[n - 1]; // 0, 1 제외하고 n은 포함되어야 하니까 -1
int count = 0;
for(int i=2; i<=n; i++){
arr[i - 2] = i;
}
for(int i=2; i<=n; i++){
if (arr[i - 2] == 0){
continue;
}
for(int j=i+i; j<=n; j+=i){ // 자기자신 제외 (i + i), 배수만큼 (j + i)
arr[j - 2] = 0;
}
}
for (int i : arr) {
if (i != 0){
count++;
}
}
return count;
}'0x20. 알고리즘' 카테고리의 다른 글
| [JAVA] 최대공약수, 최소공배수 구하기 (0) | 2021.09.02 |
|---|---|
| 약수의 총 합 구하기 (0) | 2021.09.01 |
| 두 점 사이의 거리 구하기 (1) | 2021.07.13 |