1.辗转相除法
#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int tmp;
printf("输入两个数字用空格隔开:\n");
scanf("%d %d", &num1, &num2);
int a = num1;
int b = num2;
while (num1%num2 != 0)
{
tmp = num1%num2;
num1 = num2;
num2 = tmp;
}
printf("%d和%d的最大公约数是%d\n", a, b, num2);
printf("%d和%d的最小公倍数是%d\n", a, b, num1*b/num2);
return 0;
}
2.相减法#include<stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int tmp;
printf("输入两个数字用空格隔开:\n");
scanf("%d %d", &num1, &num2);
int a = num1;
int b = num2;
if (num1 < num2)
{
int tmp = num1;
num1 = num2;
num2 = tmp;
}
while ((num1 - num2) != 0)
{
tmp = num1 - num2;
num1 = num2;
num2 = tmp;
}
printf("%d和%d的最大公约数是%d\n", a, b, num2);
printf("%d和%d的最小公倍数是%d\n", a, b, a*b/num2);
return 0;
}