博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用C语言来验证哥德巴赫猜想(定义的是int型)
阅读量:2224 次
发布时间:2019-05-08

本文共 1676 字,大约阅读时间需要 5 分钟。

哥德巴赫猜想:

如果任意一个大于6的偶数都可以写成两个素数之和。就将其称为符合哥德巴赫猜想。

#include
#include
///
/// 判断一个数是否是素数 /// ///
要判断的数 ///
如果是,返回true,否则,返回false
static bool IsPrimeNumber(int intNum) { bool blFlag = true; //标识是否是素数 if (intNum == 1 || intNum == 2) //判断输入的数字是否是1或者2 blFlag = true; //为bool类型变量赋值 else { int sqr =(int)(sqrt((double)intNum)); //对要判断的数字进行开方运算 for (int i = sqr; i >= 2; i--) //从开方后的数进行循环 { if (intNum % i == 0) //对要判断的数字和指定数字进行求余运算 { blFlag = false; //如果余数为0,说明不是素数 } } } return blFlag; //返回bool型变量 }///
/// 判断一个数是否符合哥德巴赫猜想/// ///
要判断的数///
如果符合,返回true,否则,返回false
static bool ISGDBHArith(int intNum){ bool blFlag = false; //标识是否符合哥德巴赫猜想 if (intNum % 2 == 0 && intNum > 6) //对要判断的数字进行判断 { for (int i = 1; i <= intNum / 2; i++) { bool bl1 = IsPrimeNumber(i); //判断i是否为素数 bool bl2 = IsPrimeNumber(intNum - i); //判断intNum-i是否为素数 if (bl1 & bl2) { //输出等式 printf("%d=%d+%d\n",intNum, i, intNum - i); blFlag = true; //break; //符合哥德巴赫猜想 } } } return blFlag; //返回bool型变量} void main(){ int a=0; printf("输入一个大于6的偶数:\n"); scanf_s("%d",&a,10); bool blFlag = ISGDBHArith(a); //判断是否符合哥德巴赫猜想 if (blFlag) { printf("%d能写成两个素数的和,所以其符合哥德巴赫猜想。",a); } getchar(); getchar();}

转载地址:http://ezxfb.baihongyu.com/

你可能感兴趣的文章
【Linux】HTTP的理解
查看>>
【Linux】HTTPS的理解
查看>>
【操作系统】大小端问题
查看>>
Git上传代码时碰到的问题及解决方法
查看>>
【Linux】vim的简单配置
查看>>
【C++】智能指针
查看>>
【C++】const修饰的成员函数
查看>>
【C++】面向对象的三大特性
查看>>
【C++】智能指针(后续)
查看>>
【C】堆区和栈区的区别
查看>>
【linux】send和recv函数解析
查看>>
【Linux】线程安全的单例模式以及计算密集型线程和IO密集型线程
查看>>
一次完整的HTTP请求是怎样的??
查看>>
【C++】常见的内存泄漏及解决方法
查看>>
【C++】const 指针与指向const的指针
查看>>
【Linux】多线程和多进程 及其应用场景
查看>>
【C++】构造函数中必须通过初始化列表来进行初始化情况
查看>>
【算法】对于大数的操作
查看>>
【操作系统】系统调用的概念
查看>>
【计算机网络】cookie和session的区别
查看>>