首先:我们需要知道最大公约数的定义
最大公约数:能同时被两个数(a和b)整除的最大数
其次我们需要判断a、b的大小
如果a>b,则范围为1~b。从大到小遍历b到1的大小,能同时被a和b整除的就是a,b的最大公约数
相反,如果a<b,则范围为1~a
源代码:
#include<stdio.h>
#include<stdlib.h>
int main() {
int i, a, b, n;
scanf_s("%d%d", &a, &b);
n = a;
if (a > b) n = b;
for (i = n; i > 0; i--)//遍历n-1之间的数
{
if (a%i == 0 && b%i == 0)//判断i能否被a和b同时整除
{
printf("%d\n", i);
break;
}
}
system("pause");
return 0;
}