日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

验证哥德巴赫猜想c语言算法,验证哥德巴赫猜想的简单优化

發(fā)布時(shí)間:2024/9/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 验证哥德巴赫猜想c语言算法,验证哥德巴赫猜想的简单优化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

哥德巴赫猜想:任意一個(gè)大于2的偶數(shù),都可以表示為兩個(gè)素?cái)?shù)之和。

驗(yàn)證:2000以?xún)?nèi),大于2的偶數(shù),都可以分解為兩個(gè)素?cái)?shù)之和。

分析:2000以?xún)?nèi),大于2的偶數(shù)為999個(gè),需要逐個(gè)判斷。

判斷過(guò)程:對(duì)于每個(gè)偶數(shù),將他分解為兩個(gè)數(shù),他們的和等于該偶數(shù)。然后分別判斷這兩個(gè)數(shù)是否為素?cái)?shù),若可以,則滿(mǎn)足題意;否則,重新分解并做素?cái)?shù)判斷。當(dāng)找到一個(gè)偶數(shù)無(wú)法等于為兩個(gè)素?cái)?shù)之和,驗(yàn)證失敗,程序結(jié)束。

#include int main()

{

int isPrime[2000];

//素?cái)?shù)判斷用到的輔助數(shù)組,值為1或0,元素默認(rèn)為0,

//isPrime[a]=0,代表 a 不是素?cái)?shù),isPrime[a]=1時(shí),等于 a 是素?cái)?shù)。

int a = 1;

int flag ,i;

//while循環(huán)用于找出2000以?xún)?nèi)所有素?cái)?shù)

while (a <= 2000)

{

flag = 0;

for(i = 2; i <= a/2; ++i)

{

if(a % i == 0)

{

flag = 1;

break;

}

}

if (flag == 0){

isPrime[a] = 1;//表示數(shù) a 為素?cái)?shù)

}

++a;

}

int k;

for(i = 4;i <= 2000;i += 2){

for(k = 2;k <= i/2;k++){//分解,k從2開(kāi)始,因?yàn)?不是素?cái)?shù),k小于等于i/2,因?yàn)閺膇/2處,分解與之前的分解對(duì)稱(chēng)。

if(isPrime[k] && isPrime[i - k]){//判斷分解得到的兩個(gè)數(shù)是否均為素?cái)?shù)

printf("第%d個(gè)偶數(shù):%d + %d = %d\n", i/2, k, i-k, i);

break;

}

}

if(k>(i/2)){

//上面for循環(huán),并沒(méi)有break出來(lái),k才會(huì)大于i/2,這就代表偶數(shù) i 無(wú)法分解成兩個(gè)素?cái)?shù)之和。

printf("error");

break;

}

}

return 0;

}

優(yōu)化了兩部分,

1、偶數(shù)分解部分,避免了重復(fù)判斷。

2、優(yōu)化了素?cái)?shù)判斷,避免了重復(fù)判斷。

總結(jié)

以上是生活随笔為你收集整理的验证哥德巴赫猜想c语言算法,验证哥德巴赫猜想的简单优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。