captain


私信TA

用户名:dotcpp0767612

访问量:21

签 名:

等  级
排  名 1982
经  验 2522
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 大连交通大学
专  业

  自我简介:

TA的其他文章

代码如下:
浏览:2

解题思路:对称求和以及对素数的判断

注意事项:这里我们需要理解题目的目的-输入n是偶数,这使得我们的循环是对称的(既(2-n)这个区间) 所以头尾相加可求得n 此时对题目的理解转变成判断首位数字是否同时为质数 结束战斗

参考代码:

#include<iostream>

using namespace std;


int judge(int num)

{

bool flag = true;//目的是遍历该数的所有因数 确认是否是质数

for (int i = 2; i * i <= num; i++)//这里记得i<=sqrt(减少运算量

{

if (num % i == 0)//这里不要num%i!=0 这样会漏掉一些因数 导致对质数的误判

{

return 0;//0+任何数都为0 不对结果产生影响

}

}

return num;

}

int main() {

int n, sum=0;//sum标记满足的组数 

cin >> n;

for (int i = 2; i <= n/2; i++)//这里一定要<=

{

if (judge(i) + judge(n -i) == n)

{

sum++;

}

}

cout << sum;

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »