验证歌德巴赫猜想之一c语言,请问怎样设计一个C语言程序验证歌德巴赫猜想?...

news/2024/7/8 10:11:45

请问怎样设计一个C语言程序验证歌德巴赫猜想?

來源:互聯網  2010-01-19 06:18:37  評論

分類: 電腦/網絡 >> 程序設計 >> 其他編程語言

參考答案:

以下的验证程序可以验证一个区间范围内的所有不小于6的偶数是否符合歌德巴赫猜想。

运行示例:

./gdbh 6 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

验证程序如下:

#include

#include

#include

#include

int is_prime(int num)

{

int i;

int num2;

num2 = (int)(sqrt(num) + 0.1);

//assume num is a odd, and >= 3;

for (i = 3; i <= num2; i+= 2)

{

if ((num % i) == 0)

return 0;

}

return 1;

}

int main(int argc, char **argv)

{

int first_num, last_num, num, left_num, right_num;

if (argc < 2)

{

fprintf(stderr, "Usage: %s []\n", argv[0]);

return 1;

}

first_num = atoi(argv[1]);

if (argc > 2)

last_num = atoi(argv[2]);

else

last_num = first_num;

if (first_num < 6)

first_num = 6;

if ((first_num % 2) == 1)

first_num++;

if (first_num < 0 || last_num == INT_MAX)

{

fprintf(stderr, "Error: overflow!\n");

return 1;

}

for (num = first_num; num <= last_num; num+=2)

{

int num2 = num/2;

for (left_num = 3; left_num <= num2; left_num+=2)

{

right_num = num - left_num;

if (is_prime(left_num) && is_prime(right_num))

{

break;

}

}

if (left_num <= num2)

{

printf("%d = %d + %d\n", num, left_num, right_num);

}

else

{

printf("Error: the guess is wrong!\n");

return 1;

}

}

return 0;

}

[b]分类:[/b] 电脑/网络 >> 程序设计 >> 其他编程语言[br][b]参考答案:[/b][br]以下的验证程序可以验证一个区间范围内的所有不小于6的偶数是否符合歌德巴赫猜想。

运行示例:

./gdbh 6 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

验证程序如下:

#include

#include

#include

#include

int is_prime(int num)

{

int i;

int num2;

num2 = (int)(sqrt(num) + 0.1);

//assume num is a odd, and >= 3;

for (i = 3; i <= num2; i+= 2)

{

if ((num % i) == 0)

return 0;

}

return 1;

}

int main(int argc, char **argv)

{

int first_num, last_num, num, left_num, right_num;

if (argc < 2)

{

fprintf(stderr, "Usage: %s []\n", argv[0]);

return 1;

}

first_num = atoi(argv[1]);

if (argc > 2)

last_num = atoi(argv[2]);

else

last_num = first_num;

if (first_num < 6)

first_num = 6;

if ((first_num % 2) == 1)

first_num++;

if (first_num < 0 || last_num == INT_MAX)

{

fprintf(stderr, "Error: overflow!\n");

return 1;

}

for (num = first_num; num <= last_num; num+=2)

{

int num2 = num/2;

for (left_num = 3; left_num <= num2; left_num+=2)

{

right_num = num - left_num;

if (is_prime(left_num) && is_prime(right_num))

{

break;

}

}

if (left_num <= num2)

{

printf("%d = %d + %d\n", num, left_num, right_num);

}

else

{

printf("Error: the guess is wrong!\n");

return 1;

}

}

return 0;

}


http://www.niftyadmin.cn/n/4261968.html

相关文章

Spread Studio 跨平台表格控件v11.1正式发布,让数据用 Excel 的方式说话

超强数据处理&#xff0c;无缝兼容Excel&#xff01;Spread Studio是一款高度兼容 Excel 的跨平台表格控件&#xff0c;用于在您的应用系统中实现表格数据录入和编辑等交互功能&#xff0c;并且提供灵活的定制能力和丰富的数据可视化效果&#xff0c;为商业表单控制面板提供丰富…

概率统计及其应用第三章知识总结_【考研数学】之概率论学习指导

一、考试大纲要求内容第一章 随机事件和概率1、了解样本空间(基本事件空间)的概念&#xff0c;理解随机事件的概念&#xff0c;掌握事件的关系及运算。 2、理解概率、条件概率的概念&#xff0c;掌握概率的基本性质&#xff0c;会计算古典型概率和几何型概率&#xff0c;掌握概…

2010 - 2011

明天开始&#xff0c;我就迈向了公元2011年。 首先要感谢祖国和人民&#xff0c;然后要感谢生我养我的父母&#xff0c;再者要感谢陪伴我度过日日夜夜的亲爱的老婆&#xff0c;还要感谢每一个认识我的人……没有你们&#xff0c;我不可能走到今天。 过去的一年。 还清商业贷款。…

c语言中方阵对角线的和程序,求一个3×3的整型矩阵对角线元素之和(用c语言)

c语言求一个33的整型矩阵对角线元素之和步骤如下&#xff1a;1、打开Dev-c软件&#xff0c;点击“新建源代码”。2、具体程序如下&#xff1a;#include int main(){int a[3][5]{{1,2,3},{4,5,6},{7,8,9}};int i,j,sum,m0,sum10,sum20;printf("array a:\n");for(i0;i&…

c++下各种编码格式转换的方法

1.利用c11新特性 std::wstring_convert配合std::codecvt模板类 作者&#xff1a;Gomo Psivarh链接&#xff1a;https://www.zhihu.com/question/39186934/answer/80443490来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。…

流放者柯南rust_《流放者柯南》评测8.0分 胯下生风的沙盒生存游戏

注&#xff1a;我们将从评论区抽出10位幸运玩家赠送台历。感兴趣的玩家不妨在评论的同时也留下能联系上您的电子邮箱。在这段注释文字消失前发布的评论均在抽奖范围内。请注意&#xff0c;在整个活动过程中&#xff0c;游民星空的工作人员绝不会以任何理由向您收取任何费用。各…

python时间加一个月减一个月_在Python中,从日期中减去一个月最简单的方法是什么?...

试试这个&#xff1a;def monthdelta(date, delta): m, y (date.monthdelta) % 12, date.year ((date.month)delta-1) // 12 if not m: m 12 d min(date.day, [31, 29 if y%40 and not y%4000 else 28,31,30,31,30,31,31,30,31,30,31][m-1]) return date.replace(dayd,mont…

c语言中break可以用在swift,Swift 调用 c 语言

无参数型 define常量的定义#define FADE_ANIMATION_DURATION 0.35#define VERSION_STRING "2.2.10.0a"#define MAX_RESOLUTION 1268#define HALF_RESOLUTION (MAX_RESOLUTION / 2)#define IS_HIGH_RES (MAX_RESOLUTION > 1024)此类 define&#xff0c;Swift 会转换…