最大公约数:
方法一:辗转相除法
采用函数嵌套调用形式进行求两个数的最大公约数。
定义一个函数为: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;
}