C语言辗除法做法与原理(最小公因数,最小公倍数)

C语言辗除法做法与原理(最小公因数,最小公倍数)

做法

辗除法的作用之一有求取最大公因数,做法为两个数相除,然后把除数去除余数,依次除下去。
例:9/24=0·····9–>被除数/除数=商······余数
24/9=2·····6
9/6 =1·····3
6/3 =2·····0
此时除到余数为0的除数极为最大公因数。

原理

先谈更相减损术的原理:首先有两个数:x和y;设为9和24,求取这两个数的最大公因数M,可以知道最大的数可以看成较小的数和另一个数的相加和,如24=15+9。如果说9与15的和24可以被M整除,并且9可以被M整除,那么15也可以被M整除。理解方式(因为24可以被M分成n份,因为9可以被M整除,所以n里面有一部分被9拿走了k份,剩下的n-k份就被15拿走了,所以15/M=n-k,即6可以被整除)。
而因为15=9+6,上面说了9和15可以被M整除,同理6自然可以被M整除。
接着9=6+3,6和9可以整除,同理3也可以被M整除。
然后6=3+3,最后3=3+0。此时加数为0,这时我们就可以判断这个被加数就为最大公约数。
———从下看到上,算数的基本就是以最大公因数,乘以不同的数值去相加,等到上面的各条加法式。

辗除法在我看来就是跳过了其中数值分解逐步相加的步骤,(两个数相除24/9=2····6,按更相减损术的原理,24=(29)+6,2个9可以被M整除,那一个9自然可以被M整除,所以此时就跳到了找余数6和可以被整除的9的最大公因数,再依照辗除法的思路,9/6=1····3;继续,6/3=2····0,余数为0,在更相减损术的说法中,就是加数为0。那么这23----->两个相加的3就是我们找的最大公因数了。(不管是几个3相加,被加数与加数相同,所以最大因数就是它本身。)

最小公倍数

在已知两个数的最小公因数后,我们可以设两个数分别被最大公因数分割成a和b份。a和b之间的最大公因数肯定为1。所以最大公倍数就为abM,用两个已知数表达则为x*y/M。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值