两个数的最大公约数即为可以被两个数整除的最大值,所以会有两种情况。
一种是不等于输入的两个值。
一种是等于两个数中最小的那个。
所以代码用到if语句进行第一次判断。
第二次判断则写在for语句中进行递减数循环条件判断。
此代码是以b为最大值为前提所写。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b,i;
scanf("%d%d", &a, &b);
if (b < a)//确保b为最大值
{
i = b;
b = a;
a = i;
}
if (b%a == 0) //第一次判断
{
printf("最大公约数为%d
", a);
system("pause");
return 0;
}
if (b%a != 0)
{
for (i = a; i>0;i--)
if (i%b == 0 && i%a == 0)//第二次判断
{
printf("最大公约数为%d
", i);
system("pause");
return 0;
}
else
{
printf("最大公约数为1
");
system("pause");
return 0;
}
}
}