网上找的思路,自己写的代码
思路思路:辗转相除法
1.将两整数求余 a%b = c
2.如果c = 0;则b为最大公约数
3.如果c != 0,则 a = b;b = c;继续从1开始执行
4.也就是说该循环的是否继续的判断条件就是c是否为0
#include <stdio.h>
void Swap(int a, int b)
{
int c=1;
if (a % b == 0)
printf("a,b最大的公约数是%d", b);
else
{
while (a % b)
{
c = a % b;
a = b;
b = c;
}
printf("a,b最大的公约数是%d", b);
}
return 0;
}
int main()
{
int num1=1,num2=1,tmp=0;
scanf_s("%d%d", &num1, &num2);
if (num1 > num2)
Swap(num1, num2);
else
{
tmp = num2;
num2 = num1;
num1 = tmp;
Swap(num1, num2);
}
}
运行结果: