본문 바로가기
Algorithm/Baekjoon

[백준 알고리즘][자바] 4948번 : 베르트랑 공준

by hyunipad 2021. 8. 3.
반응형

https://www.acmicpc.net/problem/4948

 

4948번: 베르트랑 공준

베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼

www.acmicpc.net

이번 문제는 4948번 : 베르트랑 공준입니다.

소수 관련 문제는 이전 포스팅에서 비슷한 문제로 풀었기 때문에 아래의 링크로 대체합니다.

2021.08.03 - [Algorithm/Baekjoon] - [백준 알고리즘][자바] 1929번 : 소수 구하기와 소수(Prime Number) 판별법 알고리즘

 

[백준 알고리즘][자바] 1929번 : 소수 구하기와 소수(Prime Number) 판별법 알고리즘

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.a..

hyunipad.tistory.com

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int num;

		while((num = Integer.parseInt(br.readLine())) != 0) {
			int count = 0;
			
			for(int i = num + 1 ; i <= num * 2 ; i++) {
				if(check(i)) {
					count++;
				}else {
					continue;
				}
			}
			
			bw.write(String.valueOf(count) + "\n");
		}
		

		br.close();
		bw.flush();
		bw.close();
	}
	
	public static boolean check(int num) {
		if(num == 1) {
			return false;
		}
		
		if(num == 2) {
			return true;
		}
		
		for(int i = 2 ; i <= (int)Math.sqrt(num) ; i++) {
			if(num % i == 0) {
				return false;
			}
		}
		
		return true;
	}
}
반응형

댓글