题目:如果一个数(小于1000)能够由两个质数的和表示,那么这两个质数就叫该数的质数队,输入一个数,输出它的质数队的队数
代码如下:
#include<iostream>
#include<vector>
#include<math.h>
using namespace std;
int numofpairs(int x) {
vector<int> res;
int i, j, b = 0;
for (i = 2; i<x; i++) {
int n = sqrt(i);
for (j = 2; j <= n; j++) {
if (i%j == 0) {
break;
}
}
if (j>n) res.push_back(i);
}
i = 0, j = res.size() - 1;
while (i<=j) {
if (res[i] + res[j] == x) {
b++;
i++;
j--;
}
else if (res[i] + res[j]<x) {
i++;
}
else j--;
}
return b;
}
int main()
{
int a;
while (cin >> a) {
if (a<1 || a>1000) return -1;
cout << numofpairs(a) << endl;
}
return 0;
}