int main()//方法1:从头到尾依次遍历,最后的公约数就是最大公约数
{ //也可以从后往前遍历,那第一个公约数就是最大公约数
int m;
int n;
scanf("%d %d",&m,&n);//10,15
int tmp = 1;//保存公约数
for (int i = 1; i <= m; i++)//从头到尾遍历所有可能
{
if (m % i == 0 && n % i == 0)
tmp = i;
}
printf("最大公约数=%d\n",tmp);
return 0;
}
int main() //方法2:辗转相除法,r余数为0,则n就是最大公约数
{
int m;
int n;
scanf("%d %d",&m,&n);//10,15
int r;//余数
for (r = m % n; r != 0; )
{
m = n;
n = r;
r = m % n;
}
printf("%d\n",n);
return 0;
}
方法二过程: