반응형
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public void solution() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int min = Integer.parseInt(st.nextToken());
int max = Integer.parseInt(st.nextToken());
Boolean[] booleans = new Boolean[max+1];
setPrimeNumber(booleans);
for(int i=min; i<=max; i++){
if(booleans[i]!=true) System.out.println(i);
}
}
public void setPrimeNumber(Boolean[] booleans){
Arrays.fill(booleans, false);
booleans[0] = booleans[1] = true;
for(int i=2; i<Math.sqrt(booleans.length); i++){
if(booleans[i]) continue;
for(int j=i*i; j<booleans.length; j+=i){
booleans[j] = true;
}
}
}
public static void main(String args[]) throws IOException {
new Main().solution();
}
}
처음에 주어진 범위대로 소수를 초기화 해놓고(에라토스테네스의 체) 주어진 범위의 소수를 for문으로 찾아서 출력한다.
백준 1978번 : 소수찾기 (https://www.acmicpc.net/problem/1978) 에서 풀었던 내용에서 에라토스테네스의 체 부분을 약간 수정 해준 후 단순 출력으로 해결했다. 나보다 월등히 빠른 사람들이 있던데 코드가 궁금하다. 추후 추가 포스팅 진행 할
예정이다.
반응형
'개발 > 알고리즘' 카테고리의 다른 글
백준 2309번 : 일곱 난쟁이 (0) | 2022.12.28 |
---|---|
백준 6588번 : 골드바흐의 추측 (0) | 2022.12.28 |
백준 1978번 : 소수 찾기 (0) | 2022.12.27 |
백준 17425번 : 약수의 합 (0) | 2022.12.25 |
백준 2609번 : 최대공약수와 최소공배수 (0) | 2022.12.24 |