素数的判断和哥德巴赫猜想的简证
来源:互联网 发布:知无涯者电影观后感 编辑:程序博客网 时间:2024/05/09 18:21
简述题目要求:
/*设计一函数,判断一整数是否为素数。并完成下列程序设计:
①编写求素数的函数,并用这个函数求 3-200 之间的所有素数
②在 4-200 之间,验证歌德巴赫猜想:任何一个充分大的偶数都可以表示为两个素数之和。输出 4=2+2 6=3+3 …… 200=3+197*/
对于素数的判断,我利用了一个bool类型的函数来描述,鉴于题目是从2开始输出,故int num 只考虑了从2开始的情况:
(有一个编程的小技巧,个人愚见:用数据进行试探性验证,进行算法的编写,会更加高效)
注意对sqrt()函数的使用要引入#include头文件
bool primeNum(int num){ if(num==2) return true; else{ int i; double n=num;//注意sqrt()函数要求对double类型的数据处理 for(i=2;i<sqrt(n)+1;i++)//sqrt(n)+1预防其值为整数情况 if(num%i==0) return false; if(i>sqrt(n)) return true; }}
然后可以用一个循环依次进行数据的判定即可,为了保证代码的完整性,给出如下代码(均写在main函数中):
printf("求3-200 之间的所有素数:\n");printf("------------------------------------------------------------------------------\n"); int num=0;//用于格式化输出,要在for之外声明,本人渣渣掉过几次坑 for(int i=3;i<=200;i++){ if(primeNum(i)){ cout<<i<<" "; num++; if((num+5)%5==0)//保证一行有5个数 printf("\n"); } } printf("---------------------------------------------------------------------------\n");
然后就可以验证哥德巴赫猜想了:
//注意:内层for循环的终止条件是j<=i/2,而不是j<i,有兴趣可以试一试printf("在 4-200 之间,验证歌德巴赫猜想:任何一个充分大的偶数都可以表示为两个素数之和。输出 4=2+2 6=3+3 …… 200=3+197:\n"); printf("-----------------------------------------------------\n"); for(int i=4;i<=200;i=i+2){ for(int j=2;j<=i/2;j++){ int temp=i-j; if(primeNum(j)&&primeNum(temp)) printf("%d=%d+%d ",i,j,temp); } printf("\n"); }
0 0
- 素数的判断和哥德巴赫猜想的简证
- 素数的家族(哥德巴赫猜想)
- C++质数/素数判断 以及 验证哥德巴赫猜想的代码实例
- 哥德巴赫猜想(c 循环+素数判断)
- 哥德巴赫猜想: 任何一个大于2的偶数都可以拆分为两个素数的和
- 哥德巴赫猜想的解析
- 哥德巴赫猜想的拓展
- 哥德巴赫猜想的拓展
- 哥德巴赫猜想的实现
- 素数与哥德巴赫猜想
- 哥德巴赫猜想的近似证明
- JAVA_哥德巴赫猜想的证明
- 哥德巴赫猜想--多少种两个质数的和
- nefu2哥德巴赫猜想 素数筛
- 趣味素数-哥德巴赫猜想-java
- 素数价值【技巧:哥德巴赫猜想】
- 写段代码验证哥德巴赫猜想之一:求给定范围的素数。
- 大学Java实验一,素数,哥德巴赫猜想,简单的日期类,复数类四则运算
- centos7安装eclipse
- JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例
- 修改apk植入动态信息总结
- 目前15 个 Android 通用流行框架大全
- Linpack的编译和安装
- 素数的判断和哥德巴赫猜想的简证
- hadoop jar wc.jar com.map.red.job.WordCountJob
- 漏洞挖掘方法之静态扫描+经典栈溢出实例
- 对象作为方法的参数传递
- 第14周项目-排序函数模板
- C++ 和 Java 过程篇
- python制作简单的爬虫
- RSA密码算法
- 1028. 人口普查(20)