利用辗转相除法进行编写代码
辗转相除法
辗转相除法又名欧几里得算法(Euclidean algorithm),目的是求出两个正整数的最大公约数。它是已知最古老的算法,其可追溯至公元前300年前。
这条算法基于一个定理:两个正整数 a 和 b(a 大于 b),它们的最大公约数等于 a 除以 b 的余数 c 和 较小数 b 之间的最大公约数。
它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
代码:
int main()
{
int a;
int b;
int c;
printf("请输入两个整数:");
scanf("%d%d", &a, &b);
while (c = a % b) //求a与b的余数c,c不等于零的时候条件为真接着循环 等c等于0是条件为假退出循环
{
a = b; //接着运用辗转相除法重新赋值
b = c;
}
printf("最大公因数为:%d", b);
return 0;
}