알고리즘/백준
BOJ) 베르트랑 공준
Zin0_0
2020. 6. 24. 17:11
반응형
베르트랑 공준
4948번: 베르트랑 공준
문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 ��
www.acmicpc.net
풀이
에라토네스의 채를 확실히 익혔는지 확인하려고 풀었다.
방법은 바로 이전 포스팅과 같기 때문에 딱히 포스팅할 말은 없다.
에라토네스 채는 자신의 배수에 대해서 소수가 아님을 체크해주는 방식이다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class FindPrimeNums_4948 {
final static String END = "0";
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputStr = "";
while(!(inputStr = br.readLine()).equals(END)) {
int n = Integer.parseInt(inputStr);
System.out.println(getCnt(n));
}
}
private static int getCnt(int n) {
int cnt =0;
boolean[] prime = new boolean[n*2+1];
for(int i=2; i<=2*n; i++) {
if(!prime[i]) {
if(i >n) {
cnt++;
}
for(int j=i*2; j<=2*n; j+=i) {
prime[j] = true;
}
}
}
return cnt;
}
}
반응형