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;
}
本文介绍两种计算两个整数最大公约数(GCD)及其最小公倍数(LCM)的方法:辗转相除法和相减法。通过C语言实现这两种算法,并演示如何获取用户输入的两个整数,计算并输出它们的最大公约数和最小公倍数。
880

被折叠的 条评论
为什么被折叠?



