经典实验--检验“哥德巴赫”猜想
·一、实验目的
实验目的:通过练习,熟练掌握循环语句和函数的应用
·二、实验原理
哥德巴赫猜想:任何大于或者等于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#include #include //布尔类型头文件 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//从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; }