尝试用C语言验证哥德巴赫猜想C语言趣味课堂练习

2021-06-07 13:40杨英翔
电子乐园·下旬刊 2021年5期
关键词:C语言教法计算机

摘要:作者多年从事计算机应用技术研究和教学,在C语言程序设计的教学过程中,作者一直在探索激发学生学习兴趣、降低课程难度、提高学习成绩的有效途径,并提出自己的一些做法供同行们参考。

关键词:C语言;教法;计算机

正文:

歌德巴赫猜想:任意一个不小于6的偶数都可以表示成两个素数的和。

本题的目的:在键盘上任意给一个符合条件的数,输出相应的两个素数。

素数:指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。

源程序:

#include<stdio.h>

int cc(int x)   // 自定义函数

{int i;

for(i=2;i<=x;i++)

{if((x%i==0)&&(i<x))

return 0;

else if((x%i==0)&&(x==i))

return 1;}}

void main( )

{ printf("\n\n    哥德巴赫猜想啦:  ");

int i,j;

printf("\n\n    请随意输入一个大于6的偶数:\n\n    ");

scanf("%d",&i);

for(j=3;j<=i/2;j++)

{if(cc(j)&&cc(i-j))

{printf("\n\n    %d=%d+%d",i,j,i-j);

break;}}

printf("\n\n    ");}

程序说明:

这个程序最充分的体现了计算机的快,我们随意输入了一个大于6的偶数之后,计算机是在一个一个的验算是否是素数的,如果是素数,再验算其另一边是否是素数,没有任何技巧,能够瞬间完成,全凭速度快。通过这个例子,同学们可以提高对计算机应用的兴趣。

相关知识:

哥德巴赫猜想用C语言还可以有多种实现方法,请大家认真思考。

相关练习:

(1) 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3

编程找出1000以内的所有完数。

#include<stdio.h>

#include<stdlib.h>

void main( )

{system("color 3f");int i,n,sum;

for(n=1; n<=1000; n++)

{ sum=0;for(i=1;i<n;i++)

{ if(n%i==0)

{ sum=sum+i;}}

if(sum==n)

{printf("\n\n    %6d是完数。",n);}}

printf("\n\n    ");}

(2) 另一个输出完数的小程序

#include<stdio.h>

#include<stdlib.h>

void main( )

{system("color 3f");

int i,j,k,n,sum;

int a[1000];

for(i=2;i<=1000;i++){sum=1;a[0]=1;k=0;

for(j=2;j<=(i/2);j++)

{if(i%j==0)

{sum+=j;a[++k]=j;}}

if(i==sum)

{printf("\n\n    ");

printf("%d=%d",i,a[0]);

for(n=1;n<=k;n++)

printf("+%d",a[n]);}}

printf("\n\n      ");}

總结:

C语言程序设计是一门非常注重实践的课程,无论课堂教学还是上机实践,教师的童心和发散思维,都是学生们突破学习难点、提高学习兴趣和建立良好的学习习惯的强有力的助力和催化剂。

参考书籍

[1]《C程序设计》(第三版),谭浩强 著,清华大学出版社,2005年7月

[2]C程序设计题解与上机指导》(第三版),谭浩强著,清华大学出版社,2005年7月

[3]《C语言程序设计习题指导与练习》,刘宏著,清华大学出版社,2009年1月

mailto:xxjk@chinajournal.net.cn

作者简介:

杨英翔(1964.06-),男,汉族,副教授,就职于沈阳建筑大学。

mailto:xxjk@chinajournal.net.cn

猜你喜欢
C语言教法计算机
能力本位的《网页前端框架》教法改革与探索
“C语言程序设计”课程混合教学探索
中国计算机报202007、08合刊
中国计算机报2019年48、49期合刊
中国古代的“计算机”
基于C语言的计算机软件编程技术探究
中职C语言单片机课堂教学中的趣味性探讨
新课改背景下高中数学教法的合理整合
计算机原理中C语言的应用价值
What kind of role should English teachers play in the intensive reading class