(1)代码如下:
不够高效
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
//输入
scanf("%d %d",&a,&b);
//求最大公约数
int min = (a < b) ? a : b;
int m = min;
while(1)
{
if (a % m == 0 && b % m == 0)
{
break;
}
m--;
}
printf("%d\n",m);
return 0;
}
运行结果:
(2)辗转相除法代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
//输入
scanf("%d %d",&a,&b);
//求最大公约数
while(a%b)
{
int c = a % b;
a = b;
b = c;
}
printf("%d\n",b);
return 0;
}
运行结果:
(3)代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
//输入
scanf("%d %d",&a,&b);
//求最大公约数
while(c = a%b)
{
a = b;
b = c;
}
printf("%d\n",b);
return 0;
}
运行结果: