1.基本法
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b, i;
printf("输入两个数:\n");
scanf("%d %d", &a, &b);
if (a>b)
{
for (i = b; i >= 1; i--)
if ((a%i == 0) &&( b%i == 0))
{
printf("输出最大公约数为:%d\n", i);
break;
}
}
else
if (a<b)
{
for (i = a; i >= 1; i--)
if ((a%i == 0) && (b%i == 0))
{
printf("输出最大公约数为:%d\n", i);
break;
}
}
printf("\n");
system("pause");
return 0;
}
2.辗转相除法
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b, r;
printf("输入两个数:\n");
scanf("%d %d", &a, &b);
while (b != 0)//当b=r=0时循环结束
{
r = a%b;
a = b;
b = r;
}
printf("输出最大公约数为:%d\n", a);
system("pause");
return 0;
}
3.辗转相减
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b;
printf("输入两个数:\n");
scanf("%d %d", &a, &b);
while (a != b)
{
if (a > b)
a = a - b;
else
if (a < b)
b= b - a;
}
printf("输出最大公约数为:%d\n",a );
system("pause");
return 0;
}