티스토리 뷰

Algorithm/BOJ

백준 4948번 C++

poopooreum 2023. 8. 18. 13:18
반응형
백준 4948번 베르트랑 공존

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

4948번: 베르트랑 공준

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

www.acmicpc.net



정답 코드

#include<iostream>
using namespace std;
int a, b;
int arr[250000] = { 1,1,0 };
void find(int a, int b);
int main() {
	while (1) {
		cin >> a;
		if (a == 0)
			return 0;
		b = 2 * a;
		find(a, b);
		int sum = 0;
		for (int x = a+1; x <= b; x++) {
			if (arr[x] == 0)
				sum++;
		}
		cout << sum << "\n";
	}
	return 0;
}
void find(int a, int b) {
	for (int x = 2; x < 250000/x; x++) {
		if (arr[x] == 1)
			continue;
		for (int y = x * x; y < 250000; y += x) {
			if (y % x == 0)
				arr[y] = 1;
		}
	}

}

문제 풀이

에라토스테네스의 체를 이용해서 소수를 판정해놓고
주어진 구간 안에서 소수인 것들만 갯술를 세었습니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 4963번 C++  (0) 2023.08.20
백준 4949번 C++  (0) 2023.08.18
백준 4673번 C++  (0) 2023.08.17
백준 4344번 C++  (0) 2023.08.17
백준 4179번 C++  (0) 2023.08.17
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함