辗转相除法可以用来计算两个数的最大公因数。
具体使用方法如下:
两个数a,b,用a除以b,再把b赋给a,余数赋给b,重复直至余数为0,则此时除数就是两个数的最大公因数,代码如下
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int mod = 0;
int tmp;
scanf("%d %d", &a, &b);
while (b)
{
mod = a % b;
a = b;
tmp=b;
b = mod;
}
printf("%d", tmp);
return 0;
}
另外也能使用这种方法求最小公倍数:
例如8和36,先用辗转相除法求出两个数的最大公因数,可看出为4,8分解为4*2,36分解为4*9,最小公因数就是4*2*9,代码就可以这么写:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int mod = 0;
int min = 0;
scanf("%d %d", &a, &b);
int tmp1 = a;
int tmp2 = b;
while (b)//写a%b会有问题,a,b互为倍数时会失效
{
mod = a % b;
a = b;
tmp=b;
b = mod;
}
min = tmp1 / tmp * tmp2 / tmp * tmp;
printf("%d", min);
return 0;
}