(个人水平有限,请见谅!)
题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))。
输入描述:
输入包括一个整数n,(3 ≤ n < 1000)。
输出描述:
输出对数。
输入:
10
输出:
2
代码示例:
#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
int main()
{
int n;
int flag = 0, sum = 0;
cin >> n;
vector <int> prime;
prime.push_back(2);
prime.push_back(3);
for (int i = 4; i < n; i++)
{
flag = 0;
for (int j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
prime.push_back(i);
}
for (int i = 0; i < prime.size(); i++)
{
for (int j = i; j < prime.size(); j++)
{
if (prime[j] == n - prime[i])
{
sum++;
break;
}
if (prime[j] > n - prime[i])
break;
}
}
cout << sum;
}