c语言-求最大公约数,辗转相除法,代码简洁。

it2023-11-17  79

学习写了多种求最大公因数的代码,还是看MOOC翁恺老师的辗转相除法最简洁易懂。

辗转相除法: 又称欧几里得算法,用于计算两个非负整数的最大公约数。以除数和余数反复做除法运算,当余数为0时,取当前式子除数为最大公约数。

定理: 两个整数的最大公约数,等于其中较小的数和两数相除余数的最大公约数。

计算公式: gcd(a,b) = gcd(b,a mod b)

代码

#include<stdio.h> int main() { int a=0; int b=0; int r=0; scanf(输入两个数“%d %d”,&a,&b); while(b!=0) { r=a%b; a=b; b=r; } priintf("最大公约数是%d\n",a); return 0; }
最新回复(0)