题目描述
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于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;
}