·一、實驗目的
實驗目的:通過練習,熟練掌味訓圈陳述句和函式的應用
·二、實驗原理
哥德巴赫猜想:任何大于或者等于6的整數都可以寫成兩個素數之和,
要求:
1) 檢驗6-n(n>=6)之內的偶數
2) 每個偶數寫成兩個整數之和的形式 例:6=3+3 8=3+5 10=3+7 等
·三、主要資料結構和演算法
演算法分析

四、實驗結果及分析
1、測驗結果截圖
(1)第一組測驗資料及結果截圖
輸入:6
輸出:6=3+3

(2)第一組測驗資料及結果截圖
輸入:10
輸出:
6=3+3
8=3+5
10=3+7

(3)第一組測驗資料及結果截圖
輸入:20
輸出:
6=3+3
8=3+5
10=3+7
12=5+7
14=3+11
16=3+13
18=5+13
20=3+17

·五、心得體會
1 為簡化程式,將找素數的程序單獨作為一個函式,
2 考慮范圍 ,判斷的先后次序;
·六、源檔案
#include <stdio.h> #include <math.h> #include <stdbool.h>//布爾型別頭檔案 int abc(int m);//宣告一個判斷素數的函式abc int main() { int n,i,j; bool f; scanf("%d",&n);//n為輸入的整數 for(i=6;i<=n;i=i+2)//依次檢驗大于等于6且小于等于n的偶數 { for(j=3;j<i;j++)//從3開始遞增,依次充當i的加數 { if(abc(j)==1&&abc(i-j)==1)//判斷兩個加數是否均為素數 { f=1;// printf("%d=%d+%d\n",i,j,(i-j));break;//輸出一種滿足要求的情況 } if(f!=1) printf("Wrong!");//如果檢驗失敗,輸出Wrong! } } } int abc(int m)//定義abc函式 { int i,k; k=sqrt(m); for (i=2;i<=k;i++) { if(m%i==0) break; } if(i>k) return 1; else return 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285689.html
標籤:其他
上一篇:基于Linux的TCP網路聊天室
