当前位置: 首页 > news >正文

求1000以内所有恰好能分解成10组两个素数之和

要求

根据哥德巴赫猜想,任意一个大偶数都可以分解为两个素数之和。但许多偶数分解为两个素数之和并不是唯一的。
请编写函数fun,其功能是:求1000(不包括1000)以内的所有恰好能分解成10组两个素数之和(5+109和109+5被认为是同一组)的偶并依次存入数组a中并在屏幕上打印出来,打印时每个数单独一行,符合条件的个数通过函数值返回。数,
例如:114=5+109=7+107=11+103=13+101=17+97=31+83=41+73=43+71=47+67=53+61
114恰好可以分解为10组素数之和,因此114是我们要找的偶数。
而116=3+113=7+109=13+103=19+97=37+79=43+73
120=7+113=11+109=13+107=17+103=19+101=23+97=31+89=37+83=41+79=47+73=53+67=59+61
116可以分解为6组素数之和,120可以分解为12组素数之和,因此116和120都不是我们要找的偶数。函数prime用来判断一个数n是否为素数,是则返回1,否则返回0。

代码

#include<stdio.h>
#include<math.h>
#pragma warning(disable:4996)int prime(int n)
{	int k,flag=1;for (k=2; k<=(int)sqrt((double)n); k++)if (n%k == 0)flag=0;return flag;
}
int fun(int m, int a[])
{ int k, s, count, i=0;for(k=6; k<=m; k+=2){   count = 0;/* 请在此处填写代码 */for(s=2;s<k/2;s++){if(prime(s) & prime(k-s)){count++;}}if (count == 10) {printf("%d\n", k);a[i++] = k;}}return i;
}
main( )
{	int count, a[100];void NONO(int count, int a[]);count = fun(999, a);NONO(count, a);
}void NONO(int count, int a[])
{FILE *fp;int i;fp = fopen("out.dat","w") ;for(i=0; i<count; i++)fprintf(fp, "%d\n", a[i]);fclose(fp);
}

结果截图

http://www.lryc.cn/news/443023.html

相关文章:

  • Webpack 和 Vite 的区别
  • C++——初步认识C++和namespace的用法
  • LeetCode118:杨辉三角
  • 介绍一下大模型或者多模态?
  • 深度学习之图像数据集增强(Data Augmentation)
  • 小程序与APP的区别
  • Linux Kernel Makefiles 编译标志详解
  • 数据可视化pyecharts——数据分析(柱状图、折线图、饼图)
  • 小程序构建npm失败
  • 计算机人工智能前沿进展-大语言模型方向-2024-09-20
  • cv环境设置
  • 线性代数书中求解线性方程组的三种方法的实例
  • Linux容器化管理——Docker常见命令总结
  • 智慧校园建设解决方案建设系统简介
  • 用Python打造互动式中秋节庆祝小程序
  • Linux 生成 git ssh 公钥
  • CertiK因发现Apple Vision Pro眼动追踪技术漏洞,第6次获苹果认可
  • 自动登录 RPA 的进阶:滑块验证的巧妙实现
  • Flask-WTF的使用
  • Docker 进入容器并运行命令的方法
  • 2024“华为杯”中国研究生数学建模竞赛(E题)深度剖析_数学建模完整过程+详细思路+代码全解析
  • 伊犁云计算22-1 apache 安装rhel8
  • 概率论原理精解【13】
  • 年度巨献 | OpenCSG开源最大中文合成数据集Chinese Cosmopedia
  • Mac 上,终端如何开启 proxy
  • Linux中的进程入门
  • Redis面试真题总结(三)
  • ARM/Linux嵌入式面经(三三):大疆
  • 《DevOps实践指南》笔记-Part 2
  • 树莓派智能语音助手实现音乐播放