Giúp tìm ra lỗi logic trong chương trình đếm cặp số có tổng là một số nguyên tố

Cho dãy số gồm N phần tử nguyên A1, A2, …, AN (1 <= n <= 1000)
Hãy đếm cặp số (có thể không liên tiếp) có tổng bằng là một số nguyên tố !

#include <bits/stdc++.h>
    #define maxn 1000
    using namespace std;
    int a[maxn],n,d=0;

    bool kiemtra(int x){
    if (x<2) return false;
    for (int i=2;i<sqrt(x);i++)
        if (x%i==0) return false;
    return true;    
}

int main(){
    cin>>n;
    for (int i=0;i<n;i++) cin>>a[i];
    for (int i=0;i<n;i++) 
        for (int j=i+1;j<n;j++) 
            if (kiemtra(a[i]+a[j])) d++;
    cout<<d;
    return 0;
}

Mình cũng mới học C++ thôi, mình thực sự không biết nó sai ở chỗ nào í, mong mn giúp đỡ ạ :sob:

Bạn thử kiemtra(9) xem có phải số nguyên tố hay không.

Mấu chốt là ở <. Bạn nghĩ kỹ lại xem chỗ này dùng toán tử so sánh nào nhé.

4 Likes

uii em sửa < thành <= và nó full test rùi
em cảm ơn ạ :heart_eyes:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?