《6.1 判定数的特性 电子课件 C语言程序设计基础.ppt》由会员分享,可在线阅读,更多相关《6.1 判定数的特性 电子课件 C语言程序设计基础.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、6.1 判定数的特性 电子课件工信版 C语言程序设计基础程序设计实践:程序设计实践:“算法”是关于解决问题的计算过程的描述,即解决问题的方法和步骤的描述。“程序设计”是使用计算机可理解的语言表达算法的过程,反映了计算机解决结构化应用问题的基本方法。本部分主要介绍常见的程序设计算法,通过典型例题提供程序设计中更广泛、更深入的内容,以拓宽学生程序设计的思路,提高程序设计能力。学会复杂程序的编写学会复杂程序的编写了解一些特殊数字的判断方法了解一些特殊数字的判断方法编写对一些特殊数字的判断程序编写对一些特殊数字的判断程序能力目标:能力目标:根据具体的算法,编写判断一个数特性的程序根据具体的算法,编写判
2、断一个数特性的程序任务一任务一 判断一个数是否为质数判断一个数是否为质数1 1请观察下面的流程图请观察下面的流程图,完成右面的要求。完成右面的要求。ikm%i=0假i=i+1真假ik+1输出:m是素数输出:m不是素数是结 束否真 break开 始输入mi=2 根据流程图,写出判断素根据流程图,写出判断素数的数的C C程序程序 任务一 判断一个数是否为质数3 3仔细阅读下面的程序,完成后面的要求。仔细阅读下面的程序,完成后面的要求。#includestdio.h#include math.hmain()int m,i,k;scanf(%d,&m);for(i=2;i*i=k+1)pritf(%d
3、是素数n,m);else printf(%d不是素数n,m);(1)通过注释,读懂程序,说出上面程序完成的功能。(2)完成下面的填空。输入:17 输出:输入:28 输出:17是素数28不是素数从键盘输入一个数字后,判断这个数是否为素数,并输入判断结果知识盘点:在上题中我们采用的算法是这样的:让在上题中我们采用的算法是这样的:让m m被被2 2到除,如果到除,如果m m能被能被2 2之中任何一个整数整除,则提前结束循环,此时之中任何一个整数整除,则提前结束循环,此时i i必然小于或必然小于或等于等于k k(即);如果(即);如果m m不能被不能被2 2k k(即)之间的任何一整数整除,(即)之间
4、的任何一整数整除,则在完成最后一次循环后,则在完成最后一次循环后,i i还要加还要加1 1,因此,因此i=k+1i=k+1,然后才终止循,然后才终止循环。在循环之后判别环。在循环之后判别i i的值是否大于或等于的值是否大于或等于k+1k+1,若是,则表明未,若是,则表明未曾被曾被2 2k k之间任一整数整除过,因此输出之间任一整数整除过,因此输出“是素数是素数”。任务二任务二 判断一个数是否为水仙花数判断一个数是否为水仙花数1 1请观察下面的请观察下面的C C语言程序,完成后面的要求。语言程序,完成后面的要求。#includestdio.hmain()int i,j,k,n;printf(请输
5、入要判断的数,&n);if(n999)printf(输入的数据错误n);else i=n/100;j=(n-i*100)/10;k=n%10;if(i*i*i+j*j*j+k*k*k=n)printf(“%d是水佩花数n,n);完成下面的填空。输入:17 输出:输入的数据错误 输入:429 输出:输入:153 输出:输入的数据错误 任务二 判断一个数是否为水仙花数知识盘点:所谓所谓“水仙花数水仙花数”是指一个三位数(即是指一个三位数(即100100999999),其各位),其各位数字立方和等于该数本身。数字立方和等于该数本身。如如153153是一是一“水仙花数水仙花数”,因为,因为153=11
6、53=13 3+5+53 3+3+33 3。某个数的立方表示为:某个数的立方表示为:n*n*nn*n*n任务三任务三 判断一个数是否为完数判断一个数是否为完数仔细阅读以下仔细阅读以下C C程序,完成后面的要求。程序,完成后面的要求。#includestdio.hmain()int n,s,j;scanf(%d,&n)s=0;for(j=1;j=n/2;j+)if(n%j=0)s=s+j;if(s=n)printf(%d是一个完数,n);完成下面的填空:完成下面的填空:输入:输入:6 6 输出:输出:6 6是一个完数是一个完数 输入:输入:17 17 输出:输出:任务三 判断一个数是否为完数知识
7、盘点:一个数如果恰好等于它的因子之和,这个数就称为一个数如果恰好等于它的因子之和,这个数就称为“完数完数”。例如例如6 6的因子是的因子是1 1、2 2、3 3,而,而6=1+2+36=1+2+3,因此,因此6 6是完数。是完数。为了找出数为了找出数numnum所有的因子,循环应该从因子所有的因子,循环应该从因子divdiv为为1 1开始,开始,num/2num/2结束,因为一个数不可能有大于其一半的因子,计算一个数结束,因为一个数不可能有大于其一半的因子,计算一个数因子之和的程序段可以是:因子之和的程序段可以是:for(div=1;div=num/2;div+)for(div=1;div=num/2;div+)if(num%div=0)if(num%div=0)把把divdiv加入加入 因子和因子和 if(num=if(num=因子和因子和)输出:输出:numnum是完数是完数