2017校招-素數對

題目描述
給定一個正整數,編寫程序計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。
如,輸入爲10, 程序應該輸出結果爲2。(共有兩對質數的和爲10,分別爲(5,5),(3,7))
輸入描述:
輸入包括一個整數n,(3 ≤ n < 1000)
輸出描述:
輸出對數
示例1

輸入

10
輸出
2

#include <iostream>
#include <vector>
using namespace std;
vector<int> a(1000);
int main(){
    int k = 0;
    for (int i = 2; i < 1000; i++){
        int mark = 0;
        for (int j = 2; j < i; j++){
            if (i%j == 0)
                mark = 1;
        }
        if (mark == 0)
            a[k++] = i;
    }
    int sum;
    int count1 = 0;
    int count2 = 0;
    cin >> sum;
    for (int i = 0; i < k; i++){
        for (int j = 0; j < k; j++){
            if (a[j] == sum - a[i] && a[i] != a[j])
                count1++;
            else if (a[j] == sum - a[i] && a[i] == a[j])
                count2++;           
        }
    }
    cout << (count1 >> 1 )+ count2;
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章