<백준> 4134

진기명기·2025년 4월 16일

코딩테스트<C++>

목록 보기
46/212

다음 소수

문제
정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오.

입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다.

출력
각각의 테스트 케이스에 대해서 n보다 크거나 같은 소수 중 가장 작은 소수를 한 줄에 하나씩 출력한다.

소수를 확인하기 위해 IsPrime() 함수를 새로 만들어 소수 판별을 하고, 입력한 값보다 크고 그중에서는 제일 작은 소수를 출력하기 위해 value++을 해주었다.

bool IsPrime(long long n)
{
	if (n < 2)
		return false;
	for (long long i = 2; i * i <= n; i++)
	{
		if (n % i == 0)
			return false;
	}
	return true;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	int n;
	cin >> n;
	long long value;

	for (int i = 0; i < n; i++)
	{
		cin >> value;
		while (!IsPrime(value))
			value++;

		cout << value << "\n";
	}

}

0개의 댓글