(백준/C++) #4134: 가장 가까운 소수점 자리

문제로 이동

(백준/C++) #4134: 가장 가까운 소수점 자리

4134: 다음 소수점 자리

정수 n(0 ≤ n ≤ 4*109)이 주어지면 n보다 크거나 같은 가장 작은 소수를 찾는 프로그램을 작성하세요.

www.acmicpc.net


설명

입력한 값이 소수가 아닌 경우 num을 증가시켜 다시 소수인지 확인합니다.


암호

#include <iostream>
#include <cmath>

using namespace std;

int is_prime(long long num) // 소수 판별
{
	if (num == 0 || num == 1) // 0과 1이면 소수가 아니므로
	{
		return 0; // 0 리턴
	}
	for (int i = 2; i <= sqrt(num); i++)
	{
		if (num % i == 0) // 소수가 아니면
		{
			return 0; // 0 리턴
		}
	}
	return 1; // 위 조건문에 해당 사항이 없으면 1 리턴
}

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

	int T;
	cin >> T;

	for (int i = 0; i < T; i++)
	{
		long long num;
		cin >> num;

		while (1)
		{
			if (is_prime(num) == 1) // 소수일 경우
			{
				cout << num << "\n"; // 출력
				break; // 반복문 중단 및 종료
			}
			else // 소수가 아닐 경우
			{
				num++; // num 증가해서 다음 소수를 찾음
				continue;
			}
		}
	}
	return 0;
}