题目内容:给定两个数,求这两个数的最大公约数。
辗转相除法:取两个数中最大的数做除数,较小的数做被除数,用最大的数除较小数,如果余数为0,则较小数为这两个数的最大公约数,如果余数不为0,用较小数除上一步计算出的余数,直到余数为0,则这两个数的最大公约数为上一步的余数。
代码如下:
#include <stdio.h>
int main()
{
int a,b,c;
printf("请输入两个整数:");
scanf_s("%d %d", &a, &b);
c = a % b;
while (1)
{
if (c == 0)
{
printf("这两个数的最大公约数为%d\n", b);
break;
}
else
{
a = b;
b = c;
c = a % b;
}
if (b == 1)
{
printf("这两个数没有公约数");
break;
}
}
return 0;
}
运行截图: