반응형
[1] 백준 카테고리
단계별로 풀어보기
기본 수학 2
4단계 1929번 문제
소수 구하기
[2] 문제
1. 입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
2. 출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
3. 예제 입력 1
3 16
4.예제 출력 1
3
5
7
11
13
[3] 정답
1. 정답 해설 미포함
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int M = sc.nextInt();
int N = sc.nextInt();
boolean[] prime = new boolean[N+1];
prime[0] = true;
prime[1] = true;
for(int i = 2; i <= N; i++){
if(prime[i] == false){
if(i >= M)
System.out.println(i);
for(int j = i+i; j <= N; j+=i)
prime[j] = true;
}
}
sc.close();
}
}
2. 정답 해설 포함
import java.util.Scanner;
// Scanner 사용을 위해서 java.util.Scanner 클래스를 import 한다.
public class Main {
// 접근제어자 public으로 Main 클래스를 선언한다
public static void main(String[] args) {
// 접근제어자 public으로 메모리에 상주하고 리턴값이 없이 main 함수를 선언한다
Scanner sc = new Scanner(System.in);
// Scanner 객체 sc를 선언한다.
int M = sc.nextInt();
// int형 변수 M를 선언하고 값을 입력받아 저장한다.
int N = sc.nextInt();
// int형 변수 N를 선언하고 값을 입력받아 저장한다.
boolean[] prime = new boolean[N+1];
// boolean형 배열 prime을 선언하고 배열의 길이를 N+1로 한다
prime[0] = true;
// 변수 prime[0]에 true 값을 저장한다
prime[1] = true;
// 변수 prime[1]에 true 값을 저장한다
for(int i = 2; i <= N; i++){
// 2~N까지 괄호의 안의 코드를 반복한다
if(prime[i] == false){
// prime[i]가 false이면 괄호안의 코드를 실행한다.
if(i >= M)
System.out.println(i);
// i가 M보다 크면 i 값을 출력한다.
for(int j = i+i; j <= N; j+=i)
// i+i~N까지 괄호안의 코드를 반복한다.
prime[j] = true;
/* 변수 prime[j] true 값을 저장한다.
에라토스테네스의 체로 i의 배수를 걸려내는 작업이다.*/
}
}
sc.close();
// Scanner 객체 sc 사용을 종료한다.
}
}
for(int i = 2; i <= N; i++){
if(prime[i] == false){
if(i >= M)
System.out.println(i);
for(int j = i+i; j <= N; j+=i)
prime[j] = true;
에라토스테네스의 채로 i의 배수를 계속 걸려낸다.
2의 배수, 3의 배수, 4의 배수..... 순으로 걸려내게 된다.
반응형
'프로그래밍 > 백준 문제 풀이(자바)' 카테고리의 다른 글
백준 9020번 자바 문제 답/해설(골드바흐의 추측 문제) (0) | 2021.12.27 |
---|---|
백준 4948번 자바 문제 답/해설(베르트랑 공준 문제) (0) | 2021.12.26 |
백준 11653번 자바 문제 답/해설(소인수분해 문제) (0) | 2021.12.24 |
백준 2581번 자바 문제 답/해설(소수 문제) (0) | 2021.12.23 |
백준 1978번 자바 문제 답/해설(소수 찾기 문제) (0) | 2021.12.22 |