问题标题: 酷町堂:3672

0
0
已解决
侯平仄
侯平仄
新手天翼
新手天翼
#include<iostream>
#include<map>
#include<cmath> 
using namespace std;
int n,m,cnt;
bool zs(int n){
    if(n==1) return false;
    for(int i=2;i<=sqrt(n);i++)
        if(n%i==0) return false;
    return true;
}
map<int,long long>a;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        if(a[i]==-11) continue;
        for(int j=i+1;j<=n;j++){
            if(a[j]==-11) continue;
            if(zs(a[i]+a[j])){
                cnt++;
                a[j]=-11;
                a[i]=-11;
            }
        } 
    }
    cout<<cnt;
    return 0;
}

RT,请问我怎么错了


0
已采纳
董宇昊
董宇昊
初级启示者
初级启示者

如果将5和6分为一组中只能得到一对互补素数,而将2和5、6和13编组将得到两对互补素数

这你看到了吗??

ps:不要质疑我,我早就学到进制转换了!

我要回答