天天看點

C語言程式設計(第三版)何欽銘著 習題6-5C語言程式設計(第三版)何欽銘著 習題6-5

C語言程式設計(第三版)何欽銘著 習題6-5

習題一覽表
1. C語言程式設計(第三版)何欽銘著 習題2-1
2.C語言程式設計(第三版)何欽銘著 習題2-2
3.C語言程式設計(第三版)何欽銘著 習題2-3
4.C語言程式設計(第三版)何欽銘著 習題2-4
5.C語言程式設計(第三版)何欽銘著 習題2-5
6.C語言程式設計(第三版)何欽銘著 習題2-6
7.C語言程式設計(第三版)何欽銘著 習題3-1
8.C語言程式設計(第三版)何欽銘著 習題3-2
9.C語言程式設計(第三版)何欽銘著 習題3-3
10.C語言程式設計(第三版)何欽銘著 習題3-4
11.C語言程式設計(第三版)何欽銘著 習題3-5
12.C語言程式設計(第三版)何欽銘著 習題4-1
13.C語言程式設計(第三版)何欽銘著 習題4-2
14.C語言程式設計(第三版)何欽銘著 習題4-3
15.C語言程式設計(第三版)何欽銘著 習題4-4
16.C語言程式設計(第三版)何欽銘著 習題4-5
17.C語言程式設計(第三版)何欽銘著 習題4-6
18.C語言程式設計(第三版)何欽銘著 習題4-7
19.C語言程式設計(第三版)何欽銘著 習題4-8
20.C語言程式設計(第三版)何欽銘著 習題4-9
21.C語言程式設計(第三版)何欽銘著 習題4-10
22.C語言程式設計(第三版)何欽銘著 習題4-11
23.C語言程式設計(第三版)何欽銘著 習題5-1
24.C語言程式設計(第三版)何欽銘著 習題5-2
25.C語言程式設計(第三版)何欽銘著 習題5-3
26.C語言程式設計(第三版)何欽銘著 習題5-4
27.C語言程式設計(第三版)何欽銘著 習題5-5
28.C語言程式設計(第三版)何欽銘著 習題5-6
29.C語言程式設計(第三版)何欽銘著 習題5-7
30.C語言程式設計(第三版)何欽銘著 習題6-1
31.C語言程式設計(第三版)何欽銘著 習題6-2
32.C語言程式設計(第三版)何欽銘著 習題6-3
33.C語言程式設計(第三版)何欽銘著 習題6-4

文章目錄

  • C語言程式設計(第三版)何欽銘著 習題6-5
    • 題目
    • 分析過程
      • 輸入
      • 輸出
    • 代碼
    • 運作結果

題目

使用函數驗證哥德巴赫猜想;

任何一個不小于 6 的偶數均可表示為兩個奇素數之和。

例如 6=3+3,8=3+5,…,18=5+13。

将6~100 之間的偶數都表示成兩個素數之和,列印時一行列印 5組。試編寫相應程式。

分析過程

輸入

條件:無

輸出

條件:将6~100 之間的偶數都表示成兩個素數之和。

要求,列印時一行列印 5組。

代碼

#include <stdio.h>
#include <math.h>
int prime(int n);
int Goldbach(int n);

int main(void) {
    int count=0;/*可實作哥德巴赫猜想的數量*/
    for(int i=6; i<= 100; i++){/*i選擇小于21,是因為Fibonacci 數的第21項為10946(已經大于10000),是以循環至第21項已經足夠了*/
        if(Goldbach(i)==1) {
            count++;
            if ( count%5 ) printf(", ");/*一行不足五個,用‘,’隔開*/
            else printf("\n");/*一行滿五個進行換行*/
        }
    }
	return 0;   
}

int prime(int n){/*判斷n是否為素數*/
    if(n<=1) return 0;/*小于1不是素數*/
    if(n==2||n==3) return 1;/*2和3為素數*/
    for(int i=2; i<=n/2;i++){/*判斷大于三的數是否為素數*/
        if(n%i==0) return 0;/*判斷i是否能将n整除,若能整除,則說明n不是素數,傳回0(代表n不是素數)*/
    }
    return 1;/*若此時函數還未終止,說明未找到能将n整除的數,即n為素數*/
}

int Goldbach(int n){/*存儲整數n的哥德巴赫猜想*/
    for(int i=2; i<=n/2; i++){
        if(prime(i)==1&&prime(n-i)==1){/*将整數n拆分成i和n-i兩個素數的和,成立,則輸出,并傳回該數可以實作哥德巴赫猜想*/
            printf("%d=%d+%d", n, i, n-i);
            return 1;/*可實作哥德巴赫猜想*/
        }
    }
    return 0;/*不可實作哥德巴赫猜想*/
}

           

運作結果

C語言程式設計(第三版)何欽銘著 習題6-5C語言程式設計(第三版)何欽銘著 習題6-5

繼續閱讀