解题思路:将x内的素数存在数组中,通过遍历组合数字寻找符合条件的组合
注意事项:若两素数符合条件且不同,则需要将这部分的数量除以二,7+3和3+7是一种组合
参考代码:
#include<stdio.h> #include<stdbool.h> bool panduan(int x){//判断x是不是素数,是,则返回true,不是返回false if(x == 2) return true; if(x % 2 == 0){ return false; }else{ for(int i = 3; i < x; i++){ if( x % i == 0 ) return false; } return true; } } int res(int x){//返回结果 int cnt = 0,a[100000]; for(int i = 2; i < x; i++){//将x内的素数存入数组a中 if(panduan(i)){ a[cnt] = i; cnt++; } } int i,j=0; int sum=0,sum1=0,sum2 = 0; for(i = 0;i<cnt;i++){//枚举每一个素数组合判断是不是符合猜想 for(j = 0;j < cnt;j++){ if(a[i] != a[j]){//两个数字不一样,会多出一半输出,所以最后这部分数字除以二 if(x == a[i]+ a[j]){ sum1++; } }else{//两个数字一样 if(x == a[i]+ a[i]){ sum2++; } } } } sum = sum1/2 + sum2; return sum; } int main(){ int x; scanf("%d",&x); printf("%d",res(x)); return 0; }
0.0分
2 人评分
C语言训练-排序问题<1> (C++代码)浏览:607 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:869 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:377 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:912 |
【金明的预算方案】 (C++代码)浏览:940 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:475 |
1024题解浏览:820 |
简单的a+b (C语言代码)浏览:638 |
生日日数 (C语言代码)浏览:1505 |
检查金币 (C语言代码)浏览:1417 |