티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/12921
에라토스테네스의 체
class Solution {
public int solution(int n) {
int answer = 0;
// 에라토스테네스의 체 이용
int[] tmp = new int[n+1];
// 2부터 n까지의 수를 배열에 넣음
for(int i=2; i<=n; i++)
tmp[i] = i;
for(int i=2; i<=n; i++) {
if(tmp[i] == 0)
continue;
// 배수들을 0으로 만듦
for(int j=2*i; j<=n; j+=i)
tmp[j] = 0;
}
// 0이 아닌 것들의 개수 = 소수의 개수
for(int i=0; i<tmp.length; i++) {
if(tmp[i] != 0)
answer++;
}
return answer;
}
}
'ALGORITHM' 카테고리의 다른 글
[JAVA] [프로그래머스] Level 1 - 연습문제 - 시저 암호 (0) | 2020.09.08 |
---|---|
[JAVA] [프로그래머스] Level 1 - 연습문제 - 수박수박수박수박수박수? (0) | 2020.09.01 |
[JAVA] [프로그래머스] Level 1 - 연습문제 - 서울에서 김서방 찾기 (0) | 2020.09.01 |
[JAVA] [프로그래머스] Level 1 - 연습문제 - 문자열 내림차순으로 배치하기 (0) | 2020.09.01 |
[JAVA] [프로그래머스] Level 1 - 연습문제 - 문자열 내 p와 y의 개수 (0) | 2020.09.01 |