|
本帖最后由 rosynirvana 于 2014-11-9 00:10 编辑
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int k, a, b, i;
- for (k = 2; k <= 100; k = k + 2) {
- for (a = 2; a <= k / 2; a++) {
- for (i = 2; i <= a - 1; i++) {
- if (a % i == 0)
- break;
- }
- if (i > a - 1) {
- b = k - a;
- for (i = 2; i <= b - 1; i++) {
- if (b % i == 0)
- break;
- }
- if (i > b - 1)
- printf("%d=%d+%d\n", k, a, b);
- }
- }
- }
- return 0;
- }
复制代码
应该是 对于每个偶数,枚举a -> 验证a是否为质数 -> 如果是验证k-a是否为质数 -> 如果是则输出
验证在这里直接枚举下一个偶数,穷举就继续枚举a
另外验证还应该记录偶数能否进行拆分,如果不能则进行处理。但是4-100之内的质数都符合哥德巴赫猜想,所以不做结果也是正确的。
另外强烈建议把检验质数的代码封装成一个函数,直接这么写看上去乱成一团 |
|