문제 해석
- 문제가 요구하는 바는 Simple 하다
- M과 N사이에 공백을 두고 입력을 받고, 입력을 받았다면 M이상이고 N이하인 모든 소수(자기 자신과 1으로만 나누어지는) 구하면 된다.
코드
import java.io.*;
import java.math.BigInteger;
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());
int M = Integer.parseInt(st.nextToken());
int N = Integer.parseInt(st.nextToken());
br.close();
printSection(M, N);
}
static void printSection(int M, int N) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for(int i = M; i <= N; i++){
BigInteger bigNumber = new BigInteger(String.valueOf(i));
if(bigNumber.isProbablePrime(10)){
bw.write(i + "\n");
}
}
bw.flush();
bw.close();
}
}
결과
느낀 점
- 어제 포스트와 연장선의 느낌이라 크게 어려운 점은 없었지만 메모리와 시간을 많이 써서 보완이 필요할 것 같다.