用自然语言描述:求两个正整数a和b最大公约数的算法
问题描述:
用自然语言描述:求两个正整数a和b最大公约数的算法
答
辗转相除法:设两数为a、b(b<a),求它们最大公约数(a、b)的步骤如下:用b除a,得a=bq.r 1(0≤r).若r1=0,则(a,b)=b;若r1≠0,则再用r1除b,得b=r1q.r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r2除r1,……如此下去,直到能整除为止.其最后一个非零余数即为(a,b).
————————————--------------------------------------------
辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子的:1.若 r 是 a ÷ b 的余数,则 gcd(a,b) = gcd(b,r) 2.a 和其倍数之最大公因子为 a.另一种写法是:1.a ÷ b,令r为所得余数(0≤r<b) 若 r = 0,算法结束;b 即为答案.2.互换:置 a←b,b←r,并返回第一步.