
-Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BOJ4134 {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++) {
long n = Long.parseLong(br.readLine());
// 1을 증가하고 소수인지 확인
while (!isPrime(n)) {
n++;
}
System.out.println(n);
}
}
// 에라토스테네스의 체로 소수인지 확인
private static boolean isPrime(long num) {
// 2 미만인 경우
if (num < 2) {
return false;
}
// 홀수만 찾아서 2는 빠지므로 계산
if (num == 2) {
return true;
}
// 2를 위에서 판한하므로 이후에 짝수 제외
if (num % 2 == 0) {
return false;
}
// 홀수만 돌면서 계산
for (long i = 3; i * i <= num; i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
처음에는 범위를 잘못봐서 int타입으로 받아서 틀렸고 이후에는 시간 초과가 나서 찾아보니 짝수는 제외하고 홀수만 검사하는 것과 2는 따로 설정해 줘야 한다는 것을 알고 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 17103번 골드바흐 파티션 (0) | 2025.12.26 |
|---|---|
| [백준/Java] 4948번 베르트랑 공준 (0) | 2025.12.26 |
| [백준/Java] 34946번 셔틀 탈래 말래 탈래 말래 애매하긴 해 (0) | 2025.12.26 |
| [백준/Java] 2485번 가로수 (0) | 2025.12.25 |
| [백준/Java] 1735번 분수 합 (0) | 2025.12.25 |