辗转相除法原理小结

在学习辗转相除法前,先了解与其密切相关的更相减损术。

更相减损术原理(总结):两个数的的和若可以被最大公因数m整除,而且两数中有一个数m被整除,则另外一个数也可以被m整除。(最大公因数存在便满足)然后这两数相减,得到第三个数(大减小),三个数的关系为第三个数和较小数的和为较大的那个数。(对比发现,满足最开始两数和与m的关系)重复该过程,当两数相减为零时,最大公因数便找到了(最后得出的两数中的任意一个)

例子:161和63

161-63=98

98-63=35

63-35=28

35-28=7

28-7=21

21-7=14

14-7=7

7-7=0

如此便得到最大公因数7

那再来了解辗转相除法

其实会发现,它的是更相减损术的浓缩。

它将两个数相减的过程变为两数求余的形式,使两数相减不必再判断两个数的大小。

#include<stdio.h>
int main()
{
    int a,b,t;
    scanf("%d %d",&a,&b);
    while(b!=0)
    {
        t=a%b;///这一行可以看为实现两数相减且无需判断大小的过程
        a=b;
        b=t;
    }
    printf("%d",a);
    return 1;
}

 我们可以拿161和98试试,发现无论a=161,


b=98还是a=98,b=161在其中会被转为小数在下,大数在上。

我么可以尝试推一推。

t=161%98

t=63;

a=98;

b=63;

以及

t=98%161

t=98;

a=161;

b=98;

因为这个原因,程序在运行中,就变为了从我们所想的的大数减小数形式了。

161 98
7
Process returned 1 (0x1)   execution time : 3.950 s
Press any key to continue.

98 161
7
Process returned 1 (0x1)   execution time : 3.250 s
Press any key to continue.



最后结束时,在更相减损术中是找到两个数相减为零 。在辗转相除法中是a能被b整除。

我的辗转相除法的小结到此结束。

(第一次写博客,希望大家支持,谢谢!!)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值