解题思路:对称求和以及对素数的判断
注意事项:这里我们需要理解题目的目的-输入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 人评分
printf基础练习2 (C语言代码)浏览:690 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:487 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:751 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:688 |
【绝对值排序】 (C语言代码)浏览:892 |
蚂蚁感冒 (C语言代码)浏览:816 |
交换Easy (C语言代码)浏览:805 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2248 |
C语言训练-排序问题<1> (C语言代码)浏览:369 |
简单的a+b (C语言代码)浏览:497 |