Algorithm

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

1984 2022. 1. 21. 06:39

 

  • std::endl 사용하면 시간 초과 -> 'n' 사용한다.
  • 소수 판정할 때 제곱근까지만 돌린다.
#include <iostream>
#include <cmath>

using namespace std;

void isPrime(int num) {
	int a = (int)sqrt(num);
	for (int j = 2; j <= a; j++) {
		if (num % j == 0) return;
	}
	cout << num << '\n';
	return;
}

int main(void)
{
	int M, N;
	int check;

	cin >> M >> N;

	for (int i = M; i <= N; i++)
	{
		if (i == 1) //M이 1일 경우 예외 처리
		{
			continue;
		}
		else if (i == 2 || i == 3)
		{
			cout << i << '\n'; //endl 시간초과
			continue;
		}
		else
		{
			isPrime(i);
		}
	}
	return 0;
}

 

728x90