코드
// 40억까지 소수를 만들면 시간과 메모리 둘 다 터짐
// 따라서 x**0.5 범위까지 탐색하며 소수 판정하는 함수 만들며 판별
// 0,1과 같은 엣지케이스 신경쓰기
#include <iostream>
using namespace std;
typedef long long ll;
ll n,m;
bool isprime(ll x) {
for(ll i = 2; i*i <=x; i++) {
if(x%i == 0) return false;
}
return true;
}
int main() {
cin >> n;
while(n--) {
cin >> m;
if(m == 1||m==0) {
cout << 2 << '\n';
continue;
}
while(1) {
if(isprime(m)) {
cout << m << '\n';
break;
}
m++;
}
}
return 0;
}
소수판정에서는 범위를 살펴보고 0,1이 포함되어있다면 이 수들이 소수가 아니라는 체크를 해줘야한다. 다른 문제를 풀 때도 엣지 케이스를 잘 생각해봐야겠다.
'백준' 카테고리의 다른 글
[백준] 1316번 그룹 단어 체커 C++ 코드 (0) | 2024.05.02 |
---|---|
[백준] 1193번 분수찾기 C++ 코드 (0) | 2024.05.02 |
[백준] 24511번 queuestack C++ 코드 (0) | 2024.04.29 |
[백준] 10814번 나이순 정렬 C++ 코드 (0) | 2024.04.23 |
[백준] 11650번 좌표 정렬하기 C++ 코드 (0) | 2024.04.23 |