1.从大到小
#define _CRT_SECURE_NO_WARINGS
#include<stdio.h>
#include <math.h>
#include<stdlib.h>
int main()
{
int a, b;
int n,i;
scanf_s("%d %d", &a,&b);
n = a; //假设a为小值
if (a > b)
{
n = b; //假设b为小值
}
for (i = n; i > 0; i--) //因为最大公因数一定小于a、b中的最小值,所以循环到最小值n时
{
if (a%i == 0 && b%i == 0) //最大公因数应同时被两数整除
{
printf("%d\n", i);
break;
}
}
system("pause");
return 0;
}
2.从小到大
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int a, b;
int n, i;
int ret;
scanf_s("%d %d", &a, &b);
n = a;
if (a > b)
{
n = b;
}
for (i = 2; i <= n; i++) //从小到大循环寻找最大公因数
{
if (a%i == 0 && b%i == 0)
{
ret = i; //因为取得的公因数不一定是最大还需再继续循环所以更新i值
}
}
printf("%d\n", ret);
system("pause");
return 0;
}