這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 編程語言 » 哥德巴赫猜想的c語言程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

哥德巴赫猜想的c語言程序

發布時間: 2023-04-17 03:44:09

⑴ 用c語言 編程 驗證哥德巴赫猜想 詳細請入

#include<stdio.h>族鬧

int prime(int n)

{for(int i=2;i*i<=n;i++)

if(n%i==0)return 0;

return n>1;

}

int main()

{int x,i;

scanf("%d",&兆春罩x);

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

if(prime(i)&森搜&prime(x-i))

{printf("%d+%d=%d ",i,x-i,x);

return 0;

}

}

⑵ 如何用C語言編程哥德巴赫猜想

#include
void main( )
{
int i, j, k, IsPrime;
for(i = 4; i <= 100; i += 2) /*偶數i從4到100*/
{
for(j = 2; j <= i / 2; j++) /* 將j從2到i/2進行測試 */
{
for(k = 2, IsPrime = 1; (k <= j / 2) && IsPrime; k++) /*判斷j是否為素數*/
if(j % k == 0) IsPrime = 0;
if(IsPrime) { /*如果j是素數缺鎮信*/
for(k = 2, IsPrime = 1; (k <= (i - j) / 2) && IsPrime; k++) /*判斷i-j是否是旅梁素數*/
if((i - j) % k == 0) IsPrime = 0;
if(IsPrime) /*如果i-j也是素數,則找到了i的一個解,將其輸出,下一個偶數i*/
{
printf("%d = %d + %d\t", i, j, i - j);
break;
}
}
}
}
}
除了printf與main外,沒有用到其他任何的函數,樓主不妨試一試伏輪。

⑶ c語言驗證哥德巴赫猜想

按照你的要求編寫的驗證哥德巴赫猜想的C語言程序如下

#include<stdio.h>

intisPrime(longn){

longi;

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

if(n%i==0)

break;

if(i==n)

return1;

else

return0;

}

intmain(){

intrepeat,i;

longn,j;

scanf("%d",&repeat);

for(i=1;i<=repeat;i++){

scanf("%ld",&n);

for(j=1;j<=n/2;j++){

if(isPrime(j)==1&&isPrime(n-j)==1){

printf("%ld%ld ",j,n-j);

break;

}

}

}

return0;

}


運行結果
輸入2
輸入10
輸出37
輸入20
輸出317

⑷ 初學C語言 驗證哥德巴赫猜想:一個大偶數可以分解成兩個素數之和。

你好,我給在幾個地方加了幾個{}就可以了,代碼:


#include<stdio.h>

#include<math.h>

main()

{

intn,x,y,a,b,i,j;

for(n=96;n<=100;n+=2)

{

for(x=3;x<n/2;x+=2)

{漏碧//第一個括弧

a=sqrt(x);

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

if(x%i==0)break;

if(i>冊改=a+1)

{//第二個括弧它必須保證找到第一個素數,才能執行下面

y=n-x;//找第二個素數

b=sqrt(y);

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

if(y%j==0)break;

if(j>=b+1)

printf("%d=%d+%d ",n,x,y);

}

}返姿舉//第一個括弧結束

}

}

⑸ C語言編程哥德巴赫猜想

#include<stdio.h>
#include<math.h>拆亂橡
int is(int x) //判斷一個數是否為陪敬素數,是素數返回1,否則返回0
{
int n;
n=sqrt(x);
for(int i=2;i<=n;i++)
{
if(x%i==0)
return 0;
}
return 1;
}
int main()
{
int num1,num2;
int s;
for(int i=1000;i<2000;i+=2)
{
num1=2;
s=i/旅旁2;
while(num1<=s)
{
if(is(num1)) //如果第一個數是素數
{
num2=i-num1;
if(is(num2))
break;
}
num1++;
}
if(num1==s+1)
{
printf("%d is mot Ok!\n",i);
break;
}
}
if(i==2000)
printf("all numbers are Ok!\n");
return 1;
}

⑹ 怎麼用C語言編程驗證哥德巴赫猜想

哇,這個問題已經被擱置4年了,我看到了就來答一下吧(雖然可能已經沒人感興趣了)

首先,聽說哥德巴赫猜想已經被證明了,也就是不存在不成立的情況了,(可點擊鏈接
http://tieba..com/p/542673904)

然後是問題本身,如果真有不符合的,可以在for(m=3;m<=k-3;m++)這個循環後面判斷一下是否是循環到了盡頭,即是否m>k-3,如果到了盡頭都不符合,那就可以輸出不符合了;
至於全部不符合的情況,由於前面已經逐項輸出,已經列印的事實已經無法改變,因此就無法只輸出說該范圍內所有數都不符合,若真的要達到那種效果,可以把你要printf的先用fprintf函數打到臨時創建的文件里,然後最後根據判斷不符合的個數決定全部列印還是列印一條。總之是用文件讀寫是一種方法。

最後呢,如果說還要改進的話,有兩點可以改進下——1,我從老師那裡聽來判斷素數的條件可以再縮小一點,也就是文中的y=x/2,可以改為 y=sqrt(x)【因為sqrt(x)的平方=x,如果小於y的整數不符合,那麼大於y的數也不會符合】;

2,類似於第一點 for(m=3;m<=k-3;m++)條件可改為m<=k/2;【理由同1】。

呃,就是這樣了,不過4年前應該提問者是大一現在應該畢業了吧~哈哈

⑺ C語言 求哥德巴赫猜想

//滿意請採納
#include"stdio.h"
#include"math.h"
intprime(inti);
intmain(){
intcount=0,i,m,n,number;
m=6;
n=100;
if(m%2!=0)m=m+1;
if(m>=6){
while(m<=n){
for(i=2;i<n/2;i++)
if(prime(i)!=0&&prime(m-i)!=0){
printf("%d=%d+%d",m,i,m-i);
count++;
if(count%5==0)
printf(" ");
break;
}
m=m+2;
}
}
}

intprime(intn){
inti;
for(i=2;i<=n/2;i++){
if(n%i==0){
return0;
break;
}
}
if(i>n/2)
return1;
}