c语言最小公倍数的求法

Python018

c语言最小公倍数的求法,第1张

c语言最小公倍数的求法如下:

两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a,b,c],多个整数的最小公倍数也有同样的记号。

与最小公倍数相对应的概念是最大公约数,a,b的最大公约数记为(a,b)。关于最小公倍数与最大公约数,我们有这样的定理:(a,b)x[a,b]=ab(a,b均为整数)。

方法一:穷举法

假设有两个整数num1和num2,这两个整数的最小公倍数一定大于等于它们的最大值,同时小于等于它们的积。按从小到大的顺序遍历整个范围内的所有整数,第一个公因数即为它们的最小公倍数。【不考虑负数,求负数的最小公倍数本就是无意义的(相当于求两个正数的最大公倍数)】

方法二:定理法

使用定理求最小公倍数(两个整数的最小公倍数等于两数之积除以两个数的最大公因数),需要先求出两个整数的最大公因数,最大公因数这里采用辗转相除法。(最大公因数的求法可以参考我上一篇文章——第68天:求最大公约数(使用三种方法))【不考虑负数,求负数的最小公倍数本就是无意义的(相当于求两个正数的最大公倍数)】

1、对于输入的两个正整数m和n每次输入的大小顺序可能不同,为了使程序具有一般性,首先对整数所m和n进行大小排序,规定变量m中存储大数、变量n中存储小数。

C语言

2、输入的两个数,大数m是小数n的倍数,那么大数m即为所求的最小公倍数;若大数m不能被小数n整除则需要寻找一个能同时被两数整除的自然数。

从大数m开始依次向后递增直到找到第一个能同时被两数整除的数为止,所以循环变量i的初值为寻找第一个能同时被两整数整除的自然数,并将其输出。需要注意的是,在找到第一个满足条件的i值后,循环没必要继续下去,所以用break来结束循环。

3、在上面的分析过程中没有提到循环变量的终止条件,因i的最大值不能确定,像这种终止条件不确定的情况如何来表示?方法有两种,第一,可以把判定条件表示成循环变量满足的基本条件,如本例终止条件可表示成i>0;第二,终止条件省略不写,利用循环体中的语句结束循环,如在找到第一个满足条件的自然数时利用break语句结束循环。

程序

c语言最小公倍数:

【利用C语言求最小公倍数主要用到ifwhie循环】例子:直接编译,程序输出结果中任意输入两个数,如5和8,然后按回车,两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。

含义

最小公倍数的适用范围:分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。因为,素数是不能被1和自身数以外的其它数整除的数;素数X的N次方,是只能被X的N及以下次方,1和自身数整除。所以,给最小公倍数下一个定义:S个数的最小公倍数,为这S个数中所含素因子的最高次方之间的乘积。