版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ax_hacker/article/details/81332446
题目描述
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
输入描述:
输入包括一个整数n,(3 ≤ n < 1000)
输出描述:
输出对数
示例1
输入
10
输出
2
思路:
质数对的特征:1)都是质数 2)何为num
一个指针从2开始,另一个从num-2开始
判断两个数是否是质数,是的话,flag++
#include <iostream>
#include <math.h>
using namespace std;
bool isPrime(int num)
{
bool flag = 1;
for (int i = 2; i < sqrt(num) + 1; ++i)
{
if (num % i == 0)
{
flag = false;
break;
}
}
return flag;
}
int main()
{
int num;
cin >> num;
int start = 2, end = num - start;
int flag = 0;
while (start <= end)
{
if (isPrime(start) && isPrime(end))
flag++;
start++;
end--;
}
cout << flag;
return 0;
}