Cậu có vấn đề hơi nghiêm trọng đấy 
Cốt lõi trong lập trình là “chia để trị”. Code để kiểm tra số nguyên tố của cậu thực ra không thể gắn thêm được đâu.
bool laSNT = true;
for (int i = 2; i <= x - 1; i++){
if (x % i == 0){
laSNT = false;
break;
}
}
if (laSNT == true){
cout << x << " ";
Giờ, nếu cậu chia bài toán của cậu, thành:
- Viết 1 hàm đơn giản để kiểm tra 1 số n có phải nguyên tố hay không. Nếu đúng trả về true, không trả về false.
- Viết 1 hàm đơn giản để chạy từ đầu tới cuối của 1 mảng
Bài toán đầu tiên như thế này:
int isPrime(int n) {
int i;
for (i = 2; i <= sqrt(n); i++) {
if(n % i == 0) {
return 0;
}
}
return 1;
}
thì bài toán thứ 2, duyệt từ đầu tới cuối mảng, kết hợp với bài toán đầu, sẽ ra:
int main() {
int i, size;
// ...
for(i = 0; i < size; i++) {
if(isPrime(arr[i])) {
// in ra màn hình
}
}
}
Rồi, giờ nếu cậu inline toàn bộ hàm isPrime
, cậu sẽ có code mà cậu cần.
Trông đơn giản không? Chỉ cần “chia để trị” thôi 
Dĩ nhiên, để inline cậu cần sửa lại 1 chút. Cậu cần 1 biến trung gian, cần đổi lại biến i
do cậu đã có biến i rồi, cơ mà đa phần công việc sẽ là copy paste và sửa chút thôi.
Code cuối sau khi inline của cậu có thể sẽ giống thế này:
int main() {
int i, size;
// ...
for(i = 0; i < size; i++) {
int j;
int isPrime = 1;
for (j = 2; j <= sqrt(n); j++) {
if(n % j == 0) {
isPrime = 0;
break;
}
}
if(isPrime) {
// in ra màn hình
}
}
}