본문 바로가기

문과 코린이의, [C. C++] 기록/C++ 백준 문제풀이

[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 소수 구하기 (1929)

반응형

[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 소수 구하기 (1929)

[문과 코린이의 IT 기록장] C++ 백준 문제풀이 - 소수 구하기 (1929)

 


 

 

1929번: 소수 구하기

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

www.acmicpc.net

[ 문제 ]

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

[ 입력 ]

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

[ 출력 ]

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


[ 코드 ]

#include<iostream>
using namespace std;

// N이 소수가 되려면, 2보다 크거나 같고 루트 N보다 작거나 같은 자연수로 나누어 떨어지면 안된다.
bool PrimeCheck(int input) {
	bool check = true;
	for (int i = 2; i*i <= input; i++)
	{
		if (input % i == 0) // 소수가 아니다
		{
			return false;
		}
	}
	return true; // 소수이다.
}

int main() {
	int M, N; // 범위 (M이상 N이하의 소수를 모두 출력하기)
	cin >> M >> N;

	for (int i = M; i <= N; i++)
	{
		if (i != 1) // 1은 소수가 아님
		{
			if (PrimeCheck(i))
			{
				cout << i << '\n';
			}
		}
	}

	return 0;
}

* 유의사항
- 아직 공부하고 있는 문과생 코린이가, 정리해서 남겨놓은 정리 및 필기노트입니다.
- 정확하지 않거나, 틀린 점이 있을 수 있으니, 유의해서 봐주시면 감사하겠습니다.
- 혹시 잘못된 점을 발견하셨다면, 댓글로 친절하게 남겨주시면 감사하겠습니다 :)
반응형