这个题目我刚开始想着因式分解,后来觉得太麻烦了,就去网上看了一下,有个很简单的方法:
欧几里得算法!!
首先要确定两个数的大小,用大数a%小数b;
如果余数不为0,则继续用被除数%余数;
循环一直到余数为0时,最后一次被除数就是最小公约数。
代码如下:
//最大公约数,欧几里得算法
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int t = 0;
int cs = 0;
int ys = 0;
printf("请输入两个整数:\n");
scanf("%d %d", &a, &b);
if (a < b)
{
t = a;
a = b;
b = t;
}
do
{
cs = a / b;
ys = a % b;
a = b;
b = ys;
} while (ys != 0);
printf("最大公约数为:%d\n",a);
return 0;
}