題目描述
給定一個正整數,編寫程序計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於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;
}