C语言中求最大公约数的几种方法
1.最常规的办法
int main()
{
int m = 0;
int n = 0;
scanf("%d %d", &m, &n);/24 18
int max = 0;
if (m > n)
{
max = n;
}
else
{
max = m;
}
while (1)
{
if (m%max == 0 && n%max == 0)
{
printf("最大公约数:%d\n", max);
break;
}
max--;
}
return 0;
}
结果显示
2.
int main()
{
int m = 0;
int n = 0;
scanf("%d %d", &m, &n);
int max = 0;
max = m > n ? n : m;
while (1)
{
if (m%max == 0 && n%max == 0)
{
printf("最大公约数:%d\n", max);
break;
}
max--;
}
return 0;
}
3.辗转相除法
//求两个数的最大公约数(辗转相除法)
int main()
{
int m = 0;
int n = 0;
scanf("%d %d", &m, &n); 24 18
int t = 0;
while (m%n)
{
t = m % n;
m = n;
n = t;
}
printf("最大公约数:%d\n", n);
return 0;
}
总结
除了上述的方法,应该还有很多,将在之后的学习中加以应用和改进。