我是靠谱客的博主 等待樱桃,这篇文章主要介绍哥德巴赫猜想,现在分享给大家,希望可以做个参考。

1 题目

功能:哥德巴赫猜想 描述: 任一大于2的整数都可写成两个质数之和 验证从 3 到 50 之间所有数都是否可以写成两个素数之和

2 思路

  1. 创建判断是否为素数的函数
  2. 从 3 到 50 循环判断是否可以有 2 个素数加和

3 代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h> #include <stdlib.h> ​ /** 功能:哥德巴赫猜想 描述: 任一大于2的整数都可写成两个质数之和 验证从 3 到 50 之间所有数都是否可以写成两个素数之和 **/ ​ int ss(int i) { // 素数的判断 ​    int j;    if (i <= 1) // 小于1的数不是素数        return 0;    if (i == 2) // 2是素数        return 1;    for (j = 2; j < i; j++) { // 对大于2的数进行判断        if (i % j == 0)            return 0;        else if (i != j + 1)            continue;        else            return 1;   } } ​ int main(int argc, char const *argv[]) { ​    int i, j, k, flag1, flag2, n = 0;    for (i = 3; i <= 50; i++)    for (k = 2; k <= i / 2; k++) {        j = i - k;        flag1 = ss(k); // 判断拆分出的数是否是素数        if (flag1) {            flag2 = ss(j);            if (flag2) { // 如果拆分出的两个数均是素数则输出                printf("%d = %d+%d,t", i, k, j);                n++;                if (n % 5 == 0)                    printf("n");           }       }   } printf("n"); }

示例结果:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ gcc ex068.c -o demo $ ./demo 4 = 2+2, 5 = 2+3, 6 = 3+3, 7 = 2+5, 8 = 3+5, 9 = 2+7, 10 = 3+7, 10 = 5+5, 12 = 5+7, 13 = 2+11, 14 = 3+11, 14 = 7+7, 15 = 2+13, 16 = 3+13, 16 = 5+11, 18 = 5+13, 18 = 7+11, 19 = 2+17, 20 = 3+17, 20 = 7+13, 21 = 2+19, 22 = 3+19, 22 = 5+17, 22 = 11+11, 24 = 5+19, 24 = 7+17, 24 = 11+13, 25 = 2+23, 26 = 3+23, 26 = 7+19, 26 = 13+13, 28 = 5+23, 28 = 11+17, 30 = 7+23, 30 = 11+19, 30 = 13+17, 31 = 2+29, 32 = 3+29, 32 = 13+19, 33 = 2+31, 34 = 3+31, 34 = 5+29, 34 = 11+23, 34 = 17+17, 36 = 5+31, 36 = 7+29, 36 = 13+23, 36 = 17+19, 38 = 7+31, 38 = 19+19, 39 = 2+37, 40 = 3+37, 40 = 11+29, 40 = 17+23, 42 = 5+37, 42 = 11+31, 42 = 13+29, 42 = 19+23, 43 = 2+41, 44 = 3+41, 44 = 7+37, 44 = 13+31, 45 = 2+43, 46 = 3+43, 46 = 5+41, 46 = 17+29, 46 = 23+23, 48 = 5+43, 48 = 7+41, 48 = 11+37, 48 = 17+31, 48 = 19+29, 49 = 2+47, 50 = 3+47, 50 = 7+43, 50 = 13+37, 50 = 19+31,

最后

以上就是等待樱桃最近收集整理的关于哥德巴赫猜想的全部内容,更多相关哥德巴赫猜想内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(148)

评论列表共有 0 条评论

立即
投稿
返回
顶部