第一篇:用C語言證明哥德巴赫猜想
用C語言證明哥德巴赫猜想
哥德巴赫猜想:任何一個(gè)大于6的偶數(shù)都可以寫成兩個(gè)素?cái)?shù)的和。#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語言驗(yàn)證哥德巴赫猜想(100以內(nèi)) #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);//輸出結(jié)果 n++;if(n % 5 == 0)//每個(gè)數(shù)自動(dòng)換一行 printf(“n”);//調(diào)用ss函數(shù)判斷另一個(gè)數(shù)是否為素?cái)?shù) //如果都是素?cái)?shù)//調(diào)用ss函數(shù)判斷當(dāng)前數(shù)是否為素?cái)?shù)//循環(huán)判斷是否為素?cái)?shù)//如果等于返回//如果小于等于返回 #include #include int is_prime(int); main(){ } //驗(yàn)證[a,b]區(qū)間內(nèi)的整數(shù)是否符合猜想 int yanzhengGDBH(int a,int b){ } int gdbh(int n){//驗(yàn)證偶數(shù)n能否分解成兩個(gè)素?cái)?shù) int a;a=3;while(a } } if(is_prime(a)){// 判斷a是否是素?cái)?shù)} a++;if(is_prime(n-a)){// 判斷n-a是否是素?cái)?shù)} 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是否是素?cái)?shù) } int i=2;if(n<2)return 0;while(i<=sqrt(n)){//2-根號n,找n的因子} return 1;//i是n的因子,不是素?cái)?shù) if(n%i==0){} i++;return 0;//i是n的因子,不是素?cái)?shù) 驗(yàn)證哥德巴赫猜想 #include #include 哥德巴赫猜想的證明方法 探索者:王志成人們不是說:證明哥德巴赫猜想,必須證明“充分大”的偶數(shù)有“1+1”的素?cái)?shù)對,才能說明哥德巴赫猜想成立嗎?今天,我們就來談如何尋找“充分大”的偶數(shù)素?cái)?shù)對的方法。 “充分大”的偶數(shù)指10的500次方,即500位數(shù)以上的偶數(shù)。因?yàn)椋覜]有學(xué)過電腦,也不知道大數(shù)的電腦計(jì)算方法,所以,我只有將“充分大”的偶數(shù)素?cái)?shù)對的尋找方法告訴大家,請電腦高手幫助進(jìn)行實(shí)施。又因?yàn)?,人們已?jīng)能夠?qū)ふ?000位數(shù)以上的素?cái)?shù),對于500位數(shù)以內(nèi)的素?cái)?shù)的尋找應(yīng)該不是問題,所以,“充分大”的偶數(shù)應(yīng)該難不住當(dāng)今的學(xué)術(shù)界。 “充分大”的偶數(shù)雖然大,我認(rèn)為:我們只須要尋找一個(gè)特定的等差數(shù)列后,再取該數(shù)列的1000項(xiàng)到2000項(xiàng),在這2000個(gè)數(shù)之內(nèi)必然能夠?qū)ふ业浇M成偶數(shù)素?cái)?shù)對的素?cái)?shù)。下面,我們進(jìn)行簡單的探索,從中尋找到具體方法。 我們以偶數(shù)39366為例,進(jìn)行探索,按照本人的定理:在偶數(shù)內(nèi),既不能被素因子整除,也不與偶數(shù)除以素因子的余數(shù)相同的數(shù)(自然數(shù)1除外),必然能夠組成偶數(shù)的素?cái)?shù)對。 這里所說的素因子,指小于偶數(shù)平方根的素?cái)?shù),√39366≈198,即小于198的素?cái)?shù)為偶數(shù)39366的素因子。 一、初步探索,1、素因子2,39366/2余0,當(dāng)然,任何偶數(shù)除以2都余0,素?cái)?shù)2把自然數(shù)分為:1+2N和2+2N,除以2余0的數(shù)和與偶數(shù)除以素因子2的余數(shù)相同的數(shù)都是2+2N數(shù)列中的數(shù),剩余1+2N數(shù)列中的數(shù)為哥德巴赫數(shù)的形成線路; 2、素因子3,39366/3余0,素?cái)?shù)3把1+2N數(shù)列分為:1+6N,3+6N,5+6N,除以3余0的數(shù)和與偶數(shù)除以素因子3的余數(shù)相同的數(shù)都是3+6N數(shù)列中的數(shù),剩余1+6N,5+6N,兩個(gè)數(shù)列中的數(shù)為哥德巴赫數(shù)的形成線路; 3、素因子5,39366/5余1,我們對上面剩余的兩個(gè)數(shù)列任意取一個(gè)數(shù)列1+6N,取與素因子相同的項(xiàng),5個(gè)項(xiàng)有:1,7,13,19,25。在這5個(gè)項(xiàng)中,必然有一個(gè)項(xiàng)除以5余0,必然有一個(gè)項(xiàng)除以素因子的余數(shù)與偶數(shù)除以素因子的余數(shù)相同,必然剩余素因子5減去2(不能被素因子整除的,為素因子減去1)個(gè)項(xiàng),即5-2=3個(gè)項(xiàng)既不能被素因子整除,也不與偶數(shù)除以素因子的余數(shù)相同的數(shù)。剩余7,13,19,以前面的素因子乘積2*3*5為公差,組成3個(gè)哥德巴赫數(shù)的形成線路:7+30N,13+30N,19+30N。后面只取3個(gè)項(xiàng),至少有一個(gè)項(xiàng)。 4、素因子7,39366/7余5,我們?nèi)我馊?+30N的3個(gè)項(xiàng)有:7,37,67,這3個(gè)數(shù)中37,67,既不能被素因子整除,也不與偶數(shù)除以素因子的余數(shù)相同的數(shù)。即37+210N和67+210N兩條線路都可以,5、素因子11,39366/11余8,我們?nèi)?7+210N的3個(gè)項(xiàng):37,247,457,這3個(gè)數(shù),既不能被素因子整除,也不與偶數(shù)除以素因子的余數(shù)相同的數(shù)。組成3個(gè)數(shù)列:37+2310N,247+2310N,457+2310N。 7、素因子13,39366/13余2,因?yàn)椋乱粋€(gè)公差為2*3*5*7*11*13=30030,39366/30030≈1,不能組成與素因子13相同的13個(gè)項(xiàng),尋找組成偶數(shù)的素?cái)?shù)對的素?cái)?shù),在取最后一個(gè)公差的等差數(shù)列時(shí),不能取與素因子相同項(xiàng)數(shù)時(shí),最少必須取素因子1/2以上的項(xiàng)。我們?nèi)?47+2310N數(shù)列在偶數(shù)1/2之內(nèi)的數(shù)有:247,2557,4867,7177,9487,11797,14107,16417,18727。 從素因子13到197,雖然還有40個(gè)素因子進(jìn)行刪除,但是,大家不要怕,它們的刪除率是相當(dāng)?shù)偷模?,在這些數(shù)中必然有能夠組成偶數(shù)素?cái)?shù)對的素?cái)?shù)存在。 素因子13,刪除能被13整除的數(shù)247,刪除除以13與39366除以13余數(shù)相同的數(shù)14107; 素因子19,刪除除以19與39366除以19余數(shù)相同的數(shù)11797; 素因子31,刪除能被31整除的數(shù)4867; 素因子53,刪除能被53整除的數(shù)9487,刪除除以53與39366除以53余數(shù)相同的數(shù)16417; 素因子61,刪除能被61整除的數(shù)18727。 最后,剩余2557和7177兩個(gè)數(shù),必然能組成偶數(shù)39366的素?cái)?shù)對。 探索方法 二、1、尋找等差數(shù)列的公差,令偶數(shù)為M、公差為B,我們已知該題的公差為2310,2310=2*3*5*7*11,大于11的下一個(gè)素?cái)?shù)為13,用13/2=6.5,那么,公差的要件為: M/B>6.5,即大于7個(gè)項(xiàng),主要是既要取最大的公差,又要確保不低于下一個(gè)素因子的1/2個(gè)項(xiàng)。我們就選擇2310為該偶數(shù)的公差。 2、尋找等差數(shù)列的首項(xiàng),令首項(xiàng)為A,A的條件為:既不能被組成公差的素?cái)?shù)2,3,5,7,11整除,也不與偶數(shù)除以2,3,5,7,11的余數(shù)相同,還必須在公差2310之內(nèi); (1)、不能被2,3,5,7,11整除的數(shù)有:在2310之內(nèi),大于或等于13的素?cái)?shù);自然數(shù)1;由大于或等于13的素因子與大于或等于13的素因子所組成的合數(shù)。為了方便起見,我們在這里取大于或等于13的素因子。 (2)、A除以2,3,5,7,11的余數(shù)不與偶數(shù)39366除以2,3,5,7,11的余數(shù)相同。因39366-13=39353,39353分別除以2,3,5,7,11不能整除,故13除以2,3,5,7,11的余數(shù)不與偶數(shù)39366除以2,3,5,7,11的余數(shù)相同,可以定為首項(xiàng),得該等差數(shù)列為13+2310N。 取等差數(shù)列13在M/2的項(xiàng)有:13,2323,4633,6943,9253,11563,13873,16183,18493。當(dāng)然,你也可以取該數(shù)列在偶數(shù)內(nèi)的所有項(xiàng),但是,當(dāng)你全盤計(jì)算該偶數(shù)素?cái)?shù)對時(shí),取所有項(xiàng)必然形成與對稱數(shù)列的計(jì)算重復(fù),該數(shù)列的對稱數(shù)列:因2310-13=2297,13不能被2,3,5,7,11整除,除以2,3,5,7,11的余數(shù)不與偶數(shù)39366除以2,3,5,7,11的余數(shù)相同,那么,對稱數(shù)2297也必然滿足這些條件,2297+2310N同樣是產(chǎn)生素?cái)?shù)對的等差數(shù)列。 3、在上面的9上項(xiàng)中,去掉合數(shù):2323,4633,6943,9253,11563,4、再去掉除以后面40個(gè)素因子余數(shù)與偶數(shù)除以這40個(gè)素因子余數(shù)相同的數(shù),也就是對稱數(shù)是合數(shù)的數(shù):13,13873,16183,剩余18493必然能夠組成偶數(shù)39366的素?cái)?shù)對。 簡單地談一下素?cái)?shù)生成線路與哥德巴赫數(shù)的生成線路的區(qū)別: 1、素?cái)?shù)生成線路,我們?nèi)匀灰?310為公差,在2310之內(nèi)不能被2,3,5,7,11整除的數(shù)有:2310*(1/2)*(2/3)*(4/5)*(6/7)*(10/11)=480個(gè),我們可以用這480個(gè)數(shù)為首項(xiàng),以2310為公差組成480個(gè)等差數(shù)列,為偶數(shù)39366內(nèi)的素?cái)?shù)生成線路。對于相鄰的偶數(shù)39364和39368來說,素?cái)?shù)的生成線路是一樣的。 2、我們把能夠組成偶數(shù)素?cái)?shù)對的素?cái)?shù)稱為哥德巴赫數(shù),偶數(shù)39366的哥德巴赫數(shù)生成線路,以2310為公差,在2310之內(nèi),既不能被2,3,5,7,11整除,也不與偶數(shù)39366除以2,3,5,7,11的余數(shù)相同的數(shù)有:2310*(1/2)*(2/3)*(3/5)*(5/7)*(9/11)=270個(gè),即偶數(shù)39366以2310為公差的哥德巴赫數(shù)生成線路為270條,在2310內(nèi)的這270個(gè)數(shù)又是與2310/2=1155完全對稱的,如果全盤進(jìn)行計(jì)算必然重復(fù),故,也可以看成是270/2=135條完整的哥德巴赫數(shù)形成線路,而素?cái)?shù)生成線路是不會(huì)重復(fù)的。 而偶數(shù)39364的哥德巴赫數(shù)生成線路,在2310之內(nèi)既不能被2,3,5,7,11整除,也不與偶數(shù)除以2,3,5,7,11的余數(shù)相同的數(shù)有:2310*(1/2)*(1/3)*(3/5)*(5/7)*(9/11)=135,為135條線路,只有偶數(shù)39366的1/2。區(qū)別在于偶數(shù)39366能夠被素因子3整除,為乘以2/3,偶數(shù)39364不能夠被素因子3整除,為乘以1/3,即能夠整除的素因子X,為乘以(X-1)/X,不能夠整除的素因子Y,為乘以(Y-2)/Y,所以,偶數(shù)39366的素?cái)?shù)對相當(dāng)于偶數(shù)39364的素?cái)?shù)對的2倍。 對于“充分大”的偶數(shù)的估算:充分大的偶數(shù)為500位數(shù),素?cái)?shù)對個(gè)數(shù),根據(jù)《哥德巴赫猜想的初級證明法》中,當(dāng)偶數(shù)大于91時(shí),偶數(shù)的素?cái)?shù)對個(gè)數(shù)不低于K(√M)/4,估計(jì)當(dāng)偶數(shù)大于500位時(shí),K的值為4*10的10次方,得充分大的偶數(shù)的素?cái)?shù)對個(gè)數(shù)不低于260位數(shù),用500位數(shù)的偶數(shù)除以260位數(shù)的數(shù),得充分大的偶數(shù)平均240位數(shù)個(gè)數(shù)字中,有一個(gè)素?cái)?shù)對的存在。如果我們直接進(jìn)行尋找,相當(dāng)于大海撈針。 如果,我們按照上面的方法二進(jìn)行尋找,公差應(yīng)為496位數(shù),估計(jì)素?cái)?shù)2*3*5*7*?*1283為496位數(shù),從素?cái)?shù)1289到2861之內(nèi),有素?cái)?shù)除以素因子2,3,5,7,?,1283的余數(shù)不與偶數(shù)除以這些素因子的余數(shù)相同的數(shù)存在,存在的這個(gè)數(shù)可以作為等差數(shù)列的首項(xiàng),2*3*5*7*?*1283的積作為等差數(shù)列的公差,取1289項(xiàng),即1289個(gè)數(shù),在這1289個(gè)數(shù)中,應(yīng)該有能夠組成500位數(shù)的偶數(shù)的1+1的素?cái)?shù)對的素?cái)?shù)存在。 難易度分析 尋找“充分大”偶數(shù)的一個(gè)“1+1”素?cái)?shù)對與驗(yàn)證1000位數(shù)以上的一個(gè)素?cái)?shù)相比較,到底哪一個(gè)難度小。 人類已經(jīng)能夠?qū)ふ也Ⅱ?yàn)證1000位數(shù)以上的素?cái)?shù),到底人們使用的什么辦法,我雖然不知道,但有一點(diǎn)可以肯定:都涉及素?cái)?shù),如果是簡單的方法,那么,都是簡單方法;如果是笨辦法,那么,都用笨辦法。我們在這里采用笨辦法進(jìn)行比較: 充分大的偶數(shù)指500位數(shù)的數(shù),與1000位數(shù)的素?cái)?shù)相比,相差500位數(shù)。1000位數(shù)的數(shù)開平方為500位數(shù),我們以位數(shù)相差一半的數(shù)為例進(jìn)行分析。 100000000與10000相差一半的位數(shù)。笨辦法是:要驗(yàn)證100000000以上的一個(gè)素?cái)?shù),假設(shè)要驗(yàn)證的這個(gè)數(shù)開平方約等于10000,必須要用這個(gè)數(shù)除以10000之內(nèi)的素?cái)?shù),不能被這之內(nèi)所有的素?cái)?shù)整除,這個(gè)數(shù)才是素?cái)?shù)。因?yàn)椋?0000內(nèi)共有素?cái)?shù)1229個(gè),即必須做1229個(gè)除法題,才能得知這個(gè)數(shù)是不是素?cái)?shù)。說個(gè)再笨一點(diǎn)的辦法,假設(shè)我們不知道10000之內(nèi)的素?cái)?shù),能否驗(yàn)證100000000以上的這個(gè)數(shù)是不是素?cái)?shù)呢?能,那就是用這個(gè)數(shù)除以10000內(nèi)的所有數(shù),不能被這之內(nèi)所有的數(shù)整除,也說明這個(gè)數(shù)是素?cái)?shù)。(之所以說,這兩種辦法是笨辦法,當(dāng)我們知道10000內(nèi)的所有素?cái)?shù)時(shí),要尋找100000000內(nèi)的所有素?cái)?shù),不是用除法,而是用乘法,步驟最多只占第一種笨辦法的1%,詳見本人的《素?cái)?shù)的分布》中所說的方法)。 當(dāng)我們尋找偶數(shù)10000的一個(gè)素?cái)?shù)對,須要多少個(gè)運(yùn)算式? 我們知道:2*3*5*7*11=2310,10000/2310≈4,13/2=6.5,按理說應(yīng)該取等差數(shù)列的7項(xiàng)以上,這里可以取4個(gè)項(xiàng),接近應(yīng)取數(shù)。我們基本上可以使用這個(gè)公差。這里的計(jì)算為5個(gè)計(jì)算式,簡稱5步; 大于11的素?cái)?shù),從13開始,尋找等差數(shù)列的首項(xiàng),我們用(10000-13)分別除以2,3,5,7,11。能被3整除,除到3為止,一個(gè)減法,兩個(gè)除法,為3步; 素?cái)?shù)17,(10000-17)分別除以2,3,5,7,11。不能整除,可以用17為等差數(shù)列的首項(xiàng),組成等差數(shù)列:17+2310N。為6步; 數(shù)列17+2310N在10000內(nèi)有:17,2327,4637,6947,9257,為4步; 計(jì)算素因子,√10000=100,素因子為100之內(nèi)的素?cái)?shù),除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個(gè)素因子。為1步; 用10000分別除以這20個(gè)素因子,把余數(shù)記下來。為20步; 用17分別除以這些素因子,當(dāng)除到67時(shí)余數(shù)與10000除以67余數(shù)相同,為14步; 用2327分別除以這些素因子,當(dāng)除到13時(shí)余數(shù)為0,為1步; 用4637分別除以這些素因子,當(dāng)除到31時(shí)余數(shù)與10000除以31余數(shù)相同,為6步; 用6947分別除以這些素因子,當(dāng)除到43時(shí)余數(shù)與10000除以43余數(shù)相同,為9步; 用9257分別除以這些素因子,既不能整除,也不與10000除以這些素因子的余數(shù)相同,奇數(shù)9257必然能組成偶數(shù)10000的素?cái)?shù)對。為20步。 總計(jì)為:102步計(jì)算式。而驗(yàn)證100000000以上的一個(gè)素?cái)?shù)須要1229步計(jì)算式相比,結(jié)論為:尋找10000的一個(gè)素?cái)?shù)對比驗(yàn)證100000000以上的一個(gè)素?cái)?shù)簡單。也就是說,尋找一個(gè)500位數(shù)偶數(shù)1+1的素?cái)?shù)對,比驗(yàn)證一個(gè)1000位數(shù)以上的素?cái)?shù)容易。 尋找500位數(shù)偶數(shù)的素?cái)?shù)對,因?yàn)椋?*3*5*7*11*?*1283左右,其乘積為493到496位數(shù),下一個(gè)素?cái)?shù)可能為1289左右,1289/2=644.5。才能滿足取下一個(gè)素因子的值的1/2以上個(gè)項(xiàng),當(dāng)然,能夠取到1289個(gè)項(xiàng)以上更好,更容易尋找到偶數(shù)的素?cái)?shù)對。 敬請世界電腦高手驗(yàn)證,充分大的偶數(shù)必然有1+1的素?cái)?shù)對存在,哥德巴赫猜想必然成立。 四川省三臺縣工商局:王志成第二篇:C語言驗(yàn)證哥德巴赫猜想
第三篇:c語言 哥德巴赫猜想2
第四篇:C語言驗(yàn)證哥德巴赫猜想
第五篇:哥德巴赫猜想證明方法