https://www.acmicpc.net/problem/1929
- 예제 입력1
3 16
- 예제 출력1
3
5
7
11
13
- 문제 접근
- 입력
- 첫째 줄 : 자연수 M과 N이 주어짐 (1 <= M <= N <= 1,000,000)
- 출력
- 한 줄에 하나씩 오름차순으로 소수 출력
- 입력
- 문제 해결
- N ~ M까지 반복하여 소수 판별
- 소수일 경우 true, 소수가 아닐 경우 false
- 소수일 경우 StringBuilder에 추가
- 기존 풀이 [메모리 : 19,368 KB / 시간 : 316 ms]
public static void main(String[] args) throws IOException{
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
int N = Integer.parseInt(input[0]), M = Integer.parseInt(input[1]);
for(int i = N; i <= M; i++){
if(check(i)){
sb.append(i).append("\n");
}
}
System.out.println(sb);
}
private static boolean check(int num){
if(num == 2) return true;
if(num == 1 || num % 2 == 0) return false;
for(int i = 3; i * i <= num; i += 2){
if(num % i == 0) return false;
}
return true;
}
'Coding Test > Step15. 약수, 배수와 소수 2' 카테고리의 다른 글
[Java] 8단계. 골드바흐 파티션 [17103번] (0) | 2024.11.05 |
---|---|
[Java] 7단계. 베르트랑 공준 [4948번] (1) | 2024.11.05 |
[Java] 5단계. 다음 소수 [4134번] (0) | 2024.11.04 |
[Java] 4단계. 가로수 [2485번] (0) | 2024.11.04 |
[Java] 3단계. 분수 합 [1735번] (0) | 2024.11.04 |