最大公约数:
方法一:辗转相除法
采用函数嵌套调用形式进行求两个数的最大公约数。
定义一个函数为:max,设x,y为参数。
x和y取余,如果x%y==0,说明y是最大公约数,否则将y和x%y作为新的参数输入max中。
int max(int x, int y)
{
if (x % y == 0)
return y;
else return max(y, x % y);
}
方法二:枚举法
输入两个数a ,b,取两数之间数值小的数为x;在a和b分别和x取余并判断两个余数是否都为0,为0则输出最小公倍数为x,否则将x-1再重复求余的过程。
int x;
int a, b;
printf("输入两个数:");
scanf_s("%d%d", &a, &b);
x = (a > b) ? b : a;
while (x > 0)
{
if (a % x == 0 && b % x == 0)
break;
temp--;
}
printf("最小公倍数为%d", x);
最小公倍数:
最大公倍数等于两数相乘除以最小功倍数;
int max(int x, int y)//定义求最大公约数的函数
{
if (x % y == 0)
return y;
else return max(y, x % y);
}
int main()
{
int a, b;
printf("输入两个整数:");
scanf_s("%d%d", &a, &b);
printf("最小公倍数为:%d", a * b / max(a, b));
return 0;
}
本文介绍了两种计算两个整数最大公约数(GCD)和最小公倍数(LCM)的方法。方法一使用辗转相除法,通过递归调用实现;方法二采用枚举法,不断缩小范围找到最小公倍数。这两种方法都是基础的数论算法,在计算机科学中有着广泛的应用。
1371

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



