소수를 구하는 메소드만 만들줄 알면 매우 간단하다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
StringTokenizer st = new StringTokenizer(br.readLine());
// 공백 입력을 위한 stringTokenixer
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
for (int i = N; i <= M; i++) {
if (isPrime(i)) {
System.out.println(i);
N부터 M까지 각 수가 소수면 출력
}
}
}
public static boolean isPrime(int num) {
if (num < 2) {
return false;
//2보다 작은 수는 소수가 아니므로 false
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
약수를 가지고 있는 수의 특징을 활용
제곱근보다 작거나 같은 수를 무조건 약수로 가지고 있다.
따라서 제곱근을 구하는 메소드인 sqrt사용
}
}
return true;
}
}'java' 카테고리의 다른 글
| [java] 17103 골드바흐 파티션 (0) | 2024.01.29 |
|---|---|
| [java] 백준4928 베르트랑 공준 (0) | 2024.01.29 |
| [java] 백준 4134 다음 소수 (1) | 2024.01.29 |
| [java] 백준 2485 가로수 (0) | 2024.01.26 |
| [java] 백준 1735 분수 합 (0) | 2024.01.26 |