C语言:编写程序验证哥德巴赫猜想 |
您所在的位置:网站首页 › 写一个判断素数的程序 › C语言:编写程序验证哥德巴赫猜想 |
目录 1. 哥德巴赫思想的解释 2. 程序设计思路 2.1 判断输入值是否为偶数 2.2 写 prime 函数判断一个数是否为素数 2.3 加数 b 要满足的条件 3. 完整程序代码 4. 运行结果 1. 哥德巴赫思想的解释哥德巴赫猜想:任何充分大的偶数都可由两个素数之和来表示,如 4=2+2,6=3+3,8=3+5······ 2. 程序设计思路(1)首先调用 scanf ,获取键盘输入的一个数,设为 n (2)用 if 语句判断输入值 n 是否为偶数 (详见2.1) (3)写一个函数 prime 判断 n 的两个加数 a,b(a>b) 是否为素数 (详见2.2) 注意 !(4)明确 b 需要满足的条件(详见2.3) 2.1 判断输入值是否为偶数 printf("请输入一个偶数:>"); scanf("%d", &n); if (n % 2 == 0) //判断 n 是否为偶数 { } 2.2 写 prime 函数判断一个数是否为素数 //判断一个数是否为素数 int prime(int i) { if (i >= 2) { int j = 2; for (j = 2; j 2 的整数整除,则为素数 { if (i % j == 0) return 0; } return 1; } else return 0; } 2.3 加数 b 要满足的条件若没加 b 的条件,仅仅通过判断a,b是否为素数打印结果,见代码如下: if (prime(a) && prime(b)) //调用 prime函数,判断a,b是否为素数。 { printf("%d=%d+%d\n", n, a, b); } 打印结果如下: 显然,图中 第2 结果并不是我们所想要的。第2项 结果与第1项 在实际意义上是重复的。 因此,为避免打印结果重复,增加条件 b >= n/2,即可符合要求。 改善后代码如下: if (prime(a) && prime(b) && b >= n / 2) //调用 prime函数,判断a,b是否为素数。并且b要满足所述条件 { printf("%d=%d+%d\n", n, a, b); } 打印结果如下: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |