问题标题: 酷町堂:互补素数(prime)


0
已采纳
王子健
王子健
初级天翼
初级天翼

我50分,有hack数据,你可以参考:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
bool IsPrime(int x) {
    if(x==1) return false;
    for(int i=2; i<=sqrt(x); i++) if (x%i==0) return false;
    return true;
} 
int a[110], cnt;
bool f[30001];
int main() {
    int n, t;
    cin >> n;
    for(int i=1; i<=n; i++) {
        cin >> a[i];
        f[a[i]] = true;
    }
    for(int i=1; i<=n; i++) {
        for(int j=i+1; j<=n; j++) {
            if(IsPrime (a[i] + a[j]) && f[a[i]] == true && f[a[j]] == true) {
                cnt ++;
                f[a[i]] = false;
                f[a[j]] = false;
                break;
            } 
        }
    } 
    cout << cnt;
    return 0;
}
//
//7
//i: 1 2 3 4 5 6 7
//a: 1 1 1 1 1 1 1
//f: 0 0 1 1 1 1 1
//
//cnt: 1

 

我要回答