백준 4948번 : 베르트랑 공준[Java]
문제출처
4948번: 베르트랑 공준
베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼
www.acmicpc.net
어제 공부한 에라토스테네스의 체를 이용
import java.util.Scanner;
public class d020_Q4948 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
while(n != 0) {
int rslt = find_prime(n);
System.out.println(rslt);
n = sc.nextInt();
}
sc.close();
}
public static int find_prime(int n) {
int[] prime = new int[2 * n + 1];
for(int i = 2; i <= 2 * n; i++) {
prime[i] = i;
}
for(int i = 2; i <= 2 * n; i++) {
if(prime[i] == 0) {continue;}
for(int j = 2 * i; j <= 2 * n; j += i) {
prime[j] = 0;
}
}
int count = 0;
for(int i = n + 1; i <= 2 * n ; i++) {
if(prime[i] != 0) {count++;}
}
return count;
}
}
한번에 맞았다. 사실 문제를 맞고 나면 이제 그만하고 자고 싶은데
더 효율적인 방법이 없을지 고민하는 시간이 가장 힘들다.
그만하고 싶은 마음을 이겨내고 구선생의 도움을 받아 다른사람들의 답변 검색하러 간다...
'문제풀이 > 코딩테스트' 카테고리의 다른 글
백준 1085번 : 직사각형에서 탈출[Java] (0) | 2020.09.23 |
---|---|
백준 9020번 : 골드바흐의 추측[Java] (0) | 2020.09.21 |
백준 1929번 : 소수 구하기[Java] (0) | 2020.09.20 |
백준 2581번 : 소수 [Java] (0) | 2020.09.18 |
백준 1978번 : 소수 찾기[Java] (0) | 2020.09.17 |