①输入两个整数为x,y, 他们的最大公约数是k,k的值应为x,y中的一个相对小的数
②然后进行x%k == 0 及 y%k == 0的计算,若他们的余数为0,则k就是最大公约数
③若至少其中一个的余数不为0,则k--(k=k-1),然后再(循环)执行②
代码
#include <stdio.h>
int main()//求最大公约数
{
int x, y, k;
printf("输入两个整数:");
scanf("%d %d", &x, &y);//输入两个整数
if (x < y)k = x;
else
k = y; //他们的最大公约数是k,k的值应为x,y中的一个相对小的数
while (k >= 1)
{ //然后进行a%k == 0 及 b%k == 0的计算
if (x%k == 0 && y%k == 0)break; //若他们的余数为0,则k就是最大公约数
k--; //若至少其中一个的余数不为0,则k--,然后再循环
}
printf("最大公约数为:%d\n", k);
}
运行结果