import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class silver3_1929 {
static boolean[] primeNum;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
primeNum = new boolean[b+1];
prime(b);
for (int i = 0; i < a; i++) {
primeNum[i] = true;
}
primeNum[0]=primeNum[1]=true;
for (int i = 0; i < primeNum.length; i++) {
if (!primeNum[i]) {
System.out.println(i);
}
}
}
static void prime( int b) {
for (int i = 2; i <=b ; i++) {
for (int j = i * i; j <= b; j += i) {
primeNum[j] = true;
}
}
}
}
이 문제는 소수 구하는 문제로 에라스토테네스의 체를 이용하여 풀면 간단한 문제다. 다만 위에 prime 함수에서 이중 포문을 사용했는데 안쪽 포문에서 j= i * i 부분때문에 계속 런타임 에러가 떴었다. 이 문제는 프로그래머스에서 똑같은 에러때문에 고생했던 문제라 다행히 이번엔 빨리 발견하고 i+i로 고칠수 있었다.
'코딩 테스트' 카테고리의 다른 글
[SWEA : JAVA] 1251 하나로 (MST, Prim 알고리즘) (0) | 2023.08.29 |
---|---|
[백준 : JAVA] 1753 최단경로 (0) | 2023.08.24 |
[백준 : JAVA] 4158 CD (0) | 2023.01.23 |
[백준 : JAVA] 2161 카드1 (0) | 2023.01.22 |
[백준 : JAVA] 9093 단어 뒤집기 (0) | 2023.01.18 |