C++编程《第20课 因数、公约数和公倍数》教学课件.pptxVIP

  • 0
  • 0
  • 约3.48千字
  • 约 26页
  • 2026-03-10 发布于广西
  • 举报

C++编程《第20课 因数、公约数和公倍数》教学课件.pptx

第20课因数、公约数

和公倍数

学习目标1、了解因数、公约数和公倍数的基本概念3、掌握最大公约数和最小公倍数的求法2、掌握求解因数的基本步骤

知识讲授

因数的概念因数,或称为约数,定义:整数a/整数b==整数c(b≠0)而没有余数,我们就说b是a的因数。注意:如果a/b==c且没有余数,那么能不能满足a/c==b且没有余数呢?所以如果b是a的因数,那么c也是a的因数。即因数大部分是成对出现的。

说出下列数字的因数81012162816的因数只有5个,因为16/4==4,前后两个因数是一样的,所以没有成对出现1、2、4、81、2、5、101、2、3、4、6、121、2、4、8、161、2、4、7、14、28

因数的求法如果随便一个数字n,怎么知道这个数字里面有哪些因数呢?利用因数的特点,n/数字a,如果能整除,那么a就是。所以利用枚举的方法,把所有可能的数字都列举一下。

求因数的一般框架for(inti=1;i=n;i++){if(n%i==0)couti;}从数字1开始到数字n之间进行枚举如果满足能整除,就是因数

【描述】任给一个正整数n,求这个数字的不同的因数及其个数。如n=6时,输出1,2,3,6四个因数,并且换行输出总数是4。【输入】一个整数n;【输出】两行;第一行从小到大列出因数,空格分隔;第二行是因数的数量。【样例输入】61236【样例输出】4统计因数

参考代码#includeiostreamusingnamespacestd;intmain(){intn,s=0;cinn;for(inti=1;i=n;i++){if(n%i==0){couti;s++;}}coutendls;return0;}

最大公约数最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。4的因数有:1、2、48的因数有:1、2、4、8则4和8的最大公约数为4。可以使用从最大的因数开始去除,看两个数字是否都能整除,如果找到第一个那么这个数字就是最大公约数,这就是枚举。

找最大公约数#includeiostreamusingnamespacestd;intmain(){inta,b;cinab;for(inti=min(a,b);i=1;i--){if(a%i==0b%i==0){couti; break;}}return0;}

辗转相除法辗转相除法是求最大公约数的一种方法。它的具体做法是:用较大数m除较小数n,得到的余数r作为下次运算中的较小数m,原来的n作为下次运算中的较大数。如此反复,直到最后余数是0为止,最后的除数就是这两个数的最大公约数。

辗转相除法基本框架while(m%n){r=m%n;//余数保存下来m=n;n=r;}例如:对于整数m=12和整数n=8。12%8得到余数r=4;m=8,n=4;8%4得到余数r=0;r为0,运算结束,则除数n=4就是最大公约数思考:大家想一下,如果m比n小,这样的代码还能不能实现呢?

参考代码#includeiostreamusingnamespacestd;intmain(){inta,b,t;cinab;if(ab)swap(a,b);//保证a比b大,后面就顺了while(a%b){t=a%b;//余数保存下来a=b;b=t;}coutb;return0;}

最小公倍数两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。对于整数4和整数8。4的倍数有:4、8、12...8的倍数有:8、16、32则4和8的最小公倍数为8。还是可以利用枚举的思想,把任意一个数的倍数从小到大求余另外一个数字,如果能整除,就是最小公倍数。

找最小公倍数#includeiostreamusingnamespacestd;intmain(){inta,b,i=1;cinab;while(1){if(i*a%b==0){couti*a; brea

文档评论(0)

1亿VIP精品文档

相关文档