본문 바로가기
Algorithm

[백준 BOJ] 1929번 소수 구하기

by Jamie Lim 2020. 11. 4.

문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
 

1929번: 소수 구하기

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

www.acmicpc.net

 

입력

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

 

출력

한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.

 

예제 입출력

 

C++

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

int main() {
	int M, N;
	cin >> M >> N;

	for (int i = M; i <= N; i++) {
		int n = sqrt(i);
		if (n == 1 && i != 1) {
			cout << i << '\n';
			continue;
		}

		if (i % 2) {   // 짝수는 무조건 소수가 아님 그러므로 홀수만 확인
			for (int j = 2; j <= n; j++) {
				if (i % j == 0)
					break;
				if (j == n)
					cout << i << '\n';
			}
		}
	}
}

'Algorithm' 카테고리의 다른 글

[Algorithm] 배열 채우기  (0) 2020.12.02
[Algorithm] 진수 변환  (0) 2020.11.18
[백준 BOJ] 1978번 소수 찾기  (0) 2020.11.04
[백준 BOJ] 10845번 큐  (0) 2020.11.04
[백준 BOJ] 9093번 단어 뒤집기  (0) 2020.11.04

댓글