1. 题目
求最大公因子(辗转相除法)。
求任意两个整数M,N最大公因子(M,N)的方法如下:
若 M=N*Q+R,其中: R为余数, 满足 O≤R≤N-1 ,
则 (M,N)=(N,R) 且当 R=0时, (M,N)=N。
例如,(1500,550)的求解过程如下:
(1500,550)=(550,400)
=(400,150)=(150,100)
=(100,50)=(50,0)=50
2. 实现思路
使用循环判断第二个整数是否为0即可。
3. C实现
/* 碾转相除法求最大公因子 */
int hcf(int m, int n)
{
int t;
while(n != 0)
{
t= m % n;
m = n;
n = t;
}
return m;
}
测试:
#include <stdio.h>
/* 碾转相除法求最大公因子 */
int hcf(int m, int n)
{
int t;
while(n != 0)
{
t= m % n;
m = n;
n = t;
}
return m;
}
int main()
{
printf("%d\n", hcf(1500,550));
return 0;
}
使用gcc编译,运行: