解题思路:将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.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论