方法一:
int main() {
int a;
int b;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
int i = 0;
int m = 0;
for (i = 1; i <= a && i <= b; i++) {
if (a % i == 0 && b % i == 0) {
m = i;
}
}
printf("最大公约数为:%d\n", m);
return 0;
}
方法二:
int main() {
int a;
int b;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
//找到两个数的较小者
int min = (a < b ? a : b);
while (1) {
if (a % min == 0 && b % min == 0) {
break;
}
min--;
}
printf("最大公约数为:%d\n", min);
return 0;
}
方法三:
//辗转相除法
int main() {
int a;
int b;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
int k = 0;
while (k = a % b) {
a = b;
b = k;
}
printf("最大公约数为:%d\n", b);
return 0;
}