문제로 이동
설명
입력한 값이 소수가 아닌 경우 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;
}