用C语言证明哥德巴赫猜想

时间:2019-05-13 07:57:46下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《用C语言证明哥德巴赫猜想》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《用C语言证明哥德巴赫猜想》。

第一篇:用C语言证明哥德巴赫猜想

用C语言证明哥德巴赫猜想

哥德巴赫猜想:任何一个大于6的偶数都可以写成两个素数的和。#include

#include

int main(void)

{

int number,a,b;

char c;

int i,j,k,l;

int sum,m;

system(“cls”);

printf(“enter your number:”);

scanf(“%d”,&number);

for(i=2;i<=number;i++)

{

sum=1;

for(j=2;j

{

if(i%j!=0)

{

sum=sum+1;

}

}

if(sum==(i-1))

{

if((i+1)==number)

{

a=i;

b=1;

printf(“%d=%d+%dn”,number,a,b);

}

else

{

for(k=2;k<=i;k++)

{

m=1;

for(l=2;l

{

if(k%l!=0)

{

m=m+1;

} } if(m==(k-1)){if((i+k)==number&&i!=k){a=i;b=k;printf(“%d=%d+%dn”,number,a,b);

}

}

}

}

system(“pause”);

}} }

第二篇:C语言验证哥德巴赫猜想

C语言验证哥德巴赫猜想(100以内)

#include “stdafx.h”

#include “stdio.h”

int ss(int i)

{

int j;

if(i <= 1)

return 0;

if(i == 2)

return 1;

for(j = 2;j < i;j++)

{

if(i % j == 0)

return 0;

else if(i!= j + 1)

continue;

else

return 1;

}

}

int main()

{

int i, j, k, flag1, flag2, n = 0;for(i = 6;i < 100;i += 2)

} {} return 0;for(k = 2;k <= i / 2;k++){} j = i-k;flag1 = ss(k);if(flag1){} flag2 = ss(j);if(flag2){} printf(“%3d=%3d+%3d,”, i, k, j);//输出结果 n++;if(n % 5 == 0)//每个数自动换一行 printf(“n”);//调用ss函数判断另一个数是否为素数 //如果都是素数//调用ss函数判断当前数是否为素数//循环判断是否为素数//如果等于返回//如果小于等于返回

第三篇:c语言 哥德巴赫猜想2

#include

#include

int is_prime(int);

main(){

}

//验证[a,b]区间内的整数是否符合猜想 int yanzhengGDBH(int a,int b){

}

int gdbh(int n){//验证偶数n能否分解成两个素数

int a;a=3;while(a0){} else{} printf(“gdbh,dui liao!n”);printf(“gdbh,cuoliao %d ci!n”,sum);

}

} if(is_prime(a)){// 判断a是否是素数} a++;if(is_prime(n-a)){// 判断n-a是否是素数} printf(“OK!%d=%d+%dn”,n,a,n-a);return 1;printf(“gedebahe ,ni cuo le!n”);return 0;

int is_prime(int n){//判断n是否是素数

} int i=2;if(n<2)return 0;while(i<=sqrt(n)){//2-根号n,找n的因子} return 1;//i是n的因子,不是素数 if(n%i==0){} i++;return 0;//i是n的因子,不是素数

第四篇:C语言验证哥德巴赫猜想

验证哥德巴赫猜想 #include int isprime(int n)/*判断n是否为素数的函数*/ { int j,x;for(j=2;j

#include int f(int n){ int i;for(i=2;i

第五篇:哥德巴赫猜想证明方法

哥德巴赫猜想的证明方法

探索者:王志成人们不是说:证明哥德巴赫猜想,必须证明“充分大”的偶数有“1+1”的素数对,才能说明哥德巴赫猜想成立吗?今天,我们就来谈如何寻找“充分大”的偶数素数对的方法。

“充分大”的偶数指10的500次方,即500位数以上的偶数。因为,我没有学过电脑,也不知道大数的电脑计算方法,所以,我只有将“充分大”的偶数素数对的寻找方法告诉大家,请电脑高手帮助进行实施。又因为,人们已经能够寻找1000位数以上的素数,对于500位数以内的素数的寻找应该不是问题,所以,“充分大”的偶数应该难不住当今的学术界。

“充分大”的偶数虽然大,我认为:我们只须要寻找一个特定的等差数列后,再取该数列的1000项到2000项,在这2000个数之内必然能够寻找到组成偶数素数对的素数。下面,我们进行简单的探索,从中寻找到具体方法。

我们以偶数39366为例,进行探索,按照本人的定理:在偶数内,既不能被素因子整除,也不与偶数除以素因子的余数相同的数(自然数1除外),必然能够组成偶数的素数对。

这里所说的素因子,指小于偶数平方根的素数,√39366≈198,即小于198的素数为偶数39366的素因子。

一、初步探索,1、素因子2,39366/2余0,当然,任何偶数除以2都余0,素数2把自然数分为:1+2N和2+2N,除以2余0的数和与偶数除以素因子2的余数相同的数都是2+2N数列中的数,剩余1+2N数列中的数为哥德巴赫数的形成线路;

2、素因子3,39366/3余0,素数3把1+2N数列分为:1+6N,3+6N,5+6N,除以3余0的数和与偶数除以素因子3的余数相同的数都是3+6N数列中的数,剩余1+6N,5+6N,两个数列中的数为哥德巴赫数的形成线路;

3、素因子5,39366/5余1,我们对上面剩余的两个数列任意取一个数列1+6N,取与素因子相同的项,5个项有:1,7,13,19,25。在这5个项中,必然有一个项除以5余0,必然有一个项除以素因子的余数与偶数除以素因子的余数相同,必然剩余素因子5减去2(不能被素因子整除的,为素因子减去1)个项,即5-2=3个项既不能被素因子整除,也不与偶数除以素因子的余数相同的数。剩余7,13,19,以前面的素因子乘积2*3*5为公差,组成3个哥德巴赫数的形成线路:7+30N,13+30N,19+30N。后面只取3个项,至少有一个项。

4、素因子7,39366/7余5,我们任意取7+30N的3个项有:7,37,67,这3个数中37,67,既不能被素因子整除,也不与偶数除以素因子的余数相同的数。即37+210N和67+210N两条线路都可以,5、素因子11,39366/11余8,我们取37+210N的3个项:37,247,457,这3个数,既不能被素因子整除,也不与偶数除以素因子的余数相同的数。组成3个数列:37+2310N,247+2310N,457+2310N。

7、素因子13,39366/13余2,因为,下一个公差为2*3*5*7*11*13=30030,39366/30030≈1,不能组成与素因子13相同的13个项,寻找组成偶数的素数对的素数,在取最后一个公差的等差数列时,不能取与素因子相同项数时,最少必须取素因子1/2以上的项。我们取247+2310N数列在偶数1/2之内的数有:247,2557,4867,7177,9487,11797,14107,16417,18727。

从素因子13到197,虽然还有40个素因子进行删除,但是,大家不要怕,它们的删除率是相当低的,所以,在这些数中必然有能够组成偶数素数对的素数存在。

素因子13,删除能被13整除的数247,删除除以13与39366除以13余数相同的数14107; 素因子19,删除除以19与39366除以19余数相同的数11797;

素因子31,删除能被31整除的数4867;

素因子53,删除能被53整除的数9487,删除除以53与39366除以53余数相同的数16417;

素因子61,删除能被61整除的数18727。

最后,剩余2557和7177两个数,必然能组成偶数39366的素数对。

探索方法

二、1、寻找等差数列的公差,令偶数为M、公差为B,我们已知该题的公差为2310,2310=2*3*5*7*11,大于11的下一个素数为13,用13/2=6.5,那么,公差的要件为: M/B>6.5,即大于7个项,主要是既要取最大的公差,又要确保不低于下一个素因子的1/2个项。我们就选择2310为该偶数的公差。

2、寻找等差数列的首项,令首项为A,A的条件为:既不能被组成公差的素数2,3,5,7,11整除,也不与偶数除以2,3,5,7,11的余数相同,还必须在公差2310之内;

(1)、不能被2,3,5,7,11整除的数有:在2310之内,大于或等于13的素数;自然数1;由大于或等于13的素因子与大于或等于13的素因子所组成的合数。为了方便起见,我们在这里取大于或等于13的素因子。

(2)、A除以2,3,5,7,11的余数不与偶数39366除以2,3,5,7,11的余数相同。因39366-13=39353,39353分别除以2,3,5,7,11不能整除,故13除以2,3,5,7,11的余数不与偶数39366除以2,3,5,7,11的余数相同,可以定为首项,得该等差数列为13+2310N。

取等差数列13在M/2的项有:13,2323,4633,6943,9253,11563,13873,16183,18493。当然,你也可以取该数列在偶数内的所有项,但是,当你全盘计算该偶数素数对时,取所有项必然形成与对称数列的计算重复,该数列的对称数列:因2310-13=2297,13不能被2,3,5,7,11整除,除以2,3,5,7,11的余数不与偶数39366除以2,3,5,7,11的余数相同,那么,对称数2297也必然满足这些条件,2297+2310N同样是产生素数对的等差数列。

3、在上面的9上项中,去掉合数:2323,4633,6943,9253,11563,4、再去掉除以后面40个素因子余数与偶数除以这40个素因子余数相同的数,也就是对称数是合数的数:13,13873,16183,剩余18493必然能够组成偶数39366的素数对。

简单地谈一下素数生成线路与哥德巴赫数的生成线路的区别:

1、素数生成线路,我们仍然以2310为公差,在2310之内不能被2,3,5,7,11整除的数有:2310*(1/2)*(2/3)*(4/5)*(6/7)*(10/11)=480个,我们可以用这480个数为首项,以2310为公差组成480个等差数列,为偶数39366内的素数生成线路。对于相邻的偶数39364和39368来说,素数的生成线路是一样的。

2、我们把能够组成偶数素数对的素数称为哥德巴赫数,偶数39366的哥德巴赫数生成线路,以2310为公差,在2310之内,既不能被2,3,5,7,11整除,也不与偶数39366除以2,3,5,7,11的余数相同的数有:2310*(1/2)*(2/3)*(3/5)*(5/7)*(9/11)=270个,即偶数39366以2310为公差的哥德巴赫数生成线路为270条,在2310内的这270个数又是与2310/2=1155完全对称的,如果全盘进行计算必然重复,故,也可以看成是270/2=135条完整的哥德巴赫数形成线路,而素数生成线路是不会重复的。

而偶数39364的哥德巴赫数生成线路,在2310之内既不能被2,3,5,7,11整除,也不与偶数除以2,3,5,7,11的余数相同的数有:2310*(1/2)*(1/3)*(3/5)*(5/7)*(9/11)=135,为135条线路,只有偶数39366的1/2。区别在于偶数39366能够被素因子3整除,为乘以2/3,偶数39364不能够被素因子3整除,为乘以1/3,即能够整除的素因子X,为乘以(X-1)/X,不能够整除的素因子Y,为乘以(Y-2)/Y,所以,偶数39366的素数对相当于偶数39364的素数对的2倍。

对于“充分大”的偶数的估算:充分大的偶数为500位数,素数对个数,根据《哥德巴赫猜想的初级证明法》中,当偶数大于91时,偶数的素数对个数不低于K(√M)/4,估计当偶数大于500位时,K的值为4*10的10次方,得充分大的偶数的素数对个数不低于260位数,用500位数的偶数除以260位数的数,得充分大的偶数平均240位数个数字中,有一个素数对的存在。如果我们直接进行寻找,相当于大海捞针。

如果,我们按照上面的方法二进行寻找,公差应为496位数,估计素数2*3*5*7*„*1283为496位数,从素数1289到2861之内,有素数除以素因子2,3,5,7,„,1283的余数不与偶数除以这些素因子的余数相同的数存在,存在的这个数可以作为等差数列的首项,2*3*5*7*„*1283的积作为等差数列的公差,取1289项,即1289个数,在这1289个数中,应该有能够组成500位数的偶数的1+1的素数对的素数存在。

难易度分析

寻找“充分大”偶数的一个“1+1”素数对与验证1000位数以上的一个素数相比较,到底哪一个难度小。

人类已经能够寻找并验证1000位数以上的素数,到底人们使用的什么办法,我虽然不知道,但有一点可以肯定:都涉及素数,如果是简单的方法,那么,都是简单方法;如果是笨办法,那么,都用笨办法。我们在这里采用笨办法进行比较:

充分大的偶数指500位数的数,与1000位数的素数相比,相差500位数。1000位数的数开平方为500位数,我们以位数相差一半的数为例进行分析。

100000000与10000相差一半的位数。笨办法是:要验证100000000以上的一个素数,假设要验证的这个数开平方约等于10000,必须要用这个数除以10000之内的素数,不能被这之内所有的素数整除,这个数才是素数。因为,10000内共有素数1229个,即必须做1229个除法题,才能得知这个数是不是素数。说个再笨一点的办法,假设我们不知道10000之内的素数,能否验证100000000以上的这个数是不是素数呢?能,那就是用这个数除以10000内的所有数,不能被这之内所有的数整除,也说明这个数是素数。(之所以说,这两种办法是笨办法,当我们知道10000内的所有素数时,要寻找100000000内的所有素数,不是用除法,而是用乘法,步骤最多只占第一种笨办法的1%,详见本人的《素数的分布》中所说的方法)。

当我们寻找偶数10000的一个素数对,须要多少个运算式?

我们知道:2*3*5*7*11=2310,10000/2310≈4,13/2=6.5,按理说应该取等差数列的7项以上,这里可以取4个项,接近应取数。我们基本上可以使用这个公差。这里的计算为5个计算式,简称5步;

大于11的素数,从13开始,寻找等差数列的首项,我们用(10000-13)分别除以2,3,5,7,11。能被3整除,除到3为止,一个减法,两个除法,为3步;

素数17,(10000-17)分别除以2,3,5,7,11。不能整除,可以用17为等差数列的首项,组成等差数列:17+2310N。为6步;

数列17+2310N在10000内有:17,2327,4637,6947,9257,为4步;

计算素因子,√10000=100,素因子为100之内的素数,除2,3,5,7,11外,还剩13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,为20个素因子。为1步;

用10000分别除以这20个素因子,把余数记下来。为20步;

用17分别除以这些素因子,当除到67时余数与10000除以67余数相同,为14步; 用2327分别除以这些素因子,当除到13时余数为0,为1步;

用4637分别除以这些素因子,当除到31时余数与10000除以31余数相同,为6步; 用6947分别除以这些素因子,当除到43时余数与10000除以43余数相同,为9步; 用9257分别除以这些素因子,既不能整除,也不与10000除以这些素因子的余数相同,奇数9257必然能组成偶数10000的素数对。为20步。

总计为:102步计算式。而验证100000000以上的一个素数须要1229步计算式相比,结论为:寻找10000的一个素数对比验证100000000以上的一个素数简单。也就是说,寻找一个500位数偶数1+1的素数对,比验证一个1000位数以上的素数容易。

寻找500位数偶数的素数对,因为,2*3*5*7*11*„*1283左右,其乘积为493到496位数,下一个素数可能为1289左右,1289/2=644.5。才能满足取下一个素因子的值的1/2以上个项,当然,能够取到1289个项以上更好,更容易寻找到偶数的素数对。

敬请世界电脑高手验证,充分大的偶数必然有1+1的素数对存在,哥德巴赫猜想必然成立。

四川省三台县工商局:王志成

下载用C语言证明哥德巴赫猜想word格式文档
下载用C语言证明哥德巴赫猜想.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    浅谈“哥德巴赫猜想”证明方法

    浅谈“哥德巴赫猜想”证明方法 务川自治县实验学校 王若仲 贵州564300 摘要:对于“哥德巴赫猜想”,我们来探讨一种证明方法,要证明任一不小于6的偶数均存在有“奇素数+奇素数......

    哥德巴赫猜想的证明

    《哥德巴赫猜想的严谨定性证明》 作者姓名:崔坤 作者单位:即墨市瑞达包装辅料厂 E-mail:cwkzq@126.com 关键词:CK表格,陈氏定理,瑞尼定理,哥德巴赫猜想 哥德巴赫猜想:哥德巴赫1742......

    哥德巴赫猜想的证明[精选]

    猜想1 每个不小于6的偶数都可以表示为两个奇素数之和 猜想2. 每个不小于9的奇数都可以表示为三个奇素数之和。 证明: 设:m为整数且≥3;a,a1,a2,a3,a4,a5,a6,a7,a8,a9,b1,b2,b3,b4,b5,b6, b7,b8,b9......

    哥德巴赫猜想范文大全

    求n=a+b: #include using namespace std; int main() {void g(int); intn; cin>>n; if(n>=6)g(n);else cout......

    哥德巴赫猜想范文大全

    哥德巴赫猜想1742年德国人哥德巴赫给当时住在俄国彼得堡的大数学家欧拉写了一封信,在信中提出两个问题:第一,是否每个大于4的偶数都能表示为两个奇质数之和?如6=3+3,14=3+11等。......

    哥德巴赫猜想的证明思路(★)

    哥德巴赫猜想的证明方法 引言 数论之位数运算,一个新的的概念,一个新的方向,一个新的课题。希望广大数学爱好者能参加到这个课题的研究中,从中发现更多的理论,解决更多的问题。......

    浅谈哥德巴赫猜想[推荐五篇]

    浅谈哥德巴赫猜想 (由来——筛法——哥猜热——个人见解) 谈论哥德巴赫猜想,先从哥德巴赫本人说起。哥德巴赫于1690年3月18日出生于普鲁士柯尼斯堡(现在的俄罗斯加里宁格勒)一个......

    《哥德巴赫猜想》读后感

    前几天,看了青年批评家李云雷的"重读《哥德巴赫猜想》"的文章,《哥德巴赫猜想》读后感。也许文章经过岁月的沉淀,以彼时彼地来看这篇当时曾轰动一时的作品,会更客观和理性,也会......