[C++] 백준 1929. 소수 구하기

멋진감자·2024년 11월 30일
1

알고리즘

목록 보기
21/65
post-thumbnail

문제

m부터 n 사이의 소수를 모두 출력하는 문제이다.
m과 n의 범위는 1부터 1,000,000.

풀이

저번에 정리한 세 가지 소수 판별 알고리즘 중 에라토스테네스의 체를 사용하였다.
그리고 구글을 돌아다니다 배운 동적 할당 도 사용하였다.
뿌듯

코드

#include <iostream>
#include <algorithm>
using namespace std;

int m, n;

void getPrime() {
	int *isPrime = new int[n + 1];
	fill(isPrime, isPrime + (n + 1), 1);
	
	isPrime[0] = 0;
	isPrime[1] = 0;

	for (int i = 2; i <= n; i++) {
		if (isPrime[i]) {
			for (int j = i * 2; j <= n; j += i) {
				isPrime[j] = 0;
			}
		}
	}

	for (int i = m; i <= n; i++) {
		if (isPrime[i]) cout << i << "\n";
	}

	return;
}

int main() {
	cin >> m >> n;
	getPrime();

	return 0;
}

채점

원트맞은 정말 큰 도파민..

profile
난멋져

2개의 댓글

comment-user-thumbnail
2024년 12월 1일

쿨감자는 한방에 끝내버려~

1개의 답글