//给定一个数,比如10= 3+7 = 5+5
//如上两队质数3-7和5-5,相加为10
//则10的质数对的个数为2
//设计一个算法求任意数的质数对数。
#include <iostream>
using namespace std;
int main()
{
int num;
cin >> num;
int result = 0;
/*
请在些完成代码根据输入的num计算出正确的result
*/
//比如1 2 3 4 5 6 7 8 9 10 只需要遍历到5 = 10/2
//比如1 2 3 4 5 6 7 8 9 10 11也只需要遍历到5 = 11/2
for (int k = 2; k <= num / 2; k++)//k<=num/2避免7 3这种情况
{
int left = k;
int right = num - left;
int flag1 = 0, flag2 = 0;
//先判断left是不是质数,循环之后当flag1=0时,表明left为质数
for (int i = 2; i < left; i++)
{
if (left%i == 0)
flag1++;
}
if (flag1 == 0)//left为质数
{
for (int j = 2; j < right; j++)
{
if (right%j == 0)
flag2++;
}
if (flag2 == 0)//right是质数
{
result++;
}
}//if
}//外层for
cout << result << endl;
return 0;
}
求任意数的质数对数
最新推荐文章于 2023-05-31 22:17:33 发布