array[i] là các giá trị phần tử mảng
vòng lăp j dùng để kiểm tra số nguyên tố
còn array[i] %j em viết sai
Tìm số nguyên tố trong mảng
vậy bạn xem thử, trong đoạn kiểm tra array[i] có phải là snt hay không, thì n có vai trò là gì, tại sao lại duyệt j theo n?
n đóng vai trò để duỵet các phần tử trong mảng
vì em đặt j =2 để xét j đi từ 2 đến n
nếu n%j ==0 có nghĩa là n ko phải số nguyên tố
ngược lại nó là số nguyên tố
duyệt j = 2 đến n, kiểm tra n% j == 0, là để kiểm tra n có phải snt hay không, vậy để kt array[i] có phải là snt hay không thì duyệt j như thế nào
j=2 j<a[i] j++
a[i]%j==0
thì không phải số nguyên tố
rồi, áp dụng ngược vào bài
xem bạn đã làm đúng như vậy hay chưa, nếu chưa thì fix lại.
Với lại là với mỗi array[i], phải reset lại biến c, đánh dấu nó lại, chứ nếu không thì nó sẽ giữ kết quả của lần kiểm tra trước
i chạy từ 0 đến n, j chạy từ 2, với điều kiện j < a[i]. Với trường hợp a[0] = 2 thì vòng lặp không xảy ra, vậy phải xét riêng trường hợp <= 2.
Bai toán của bạn cần thêm điều kiện ( n phải lớn hơn 0)
với lại vòng for chỉ cần chạy tới căn 2 của nó thôi.
if (n <= 0){
cout << "so luong > 0 ";
}
else {
bool test;
for(int i =0; i < n; i++){
if (arr[i] <= 2)
continue;
else {
test = true;
for(int j = 2; j <= sqrt((double)arr[i]); j++){
if(arr[i] % j == 0){
test = false;
break;
}
}
if(test)
cout << arr[i] << "\t";
}
}
}