三个数的最小公倍数

三个数的最小公倍数

扩大倍数法 (代码实现容易)

先列举出这三个数中最大数的倍数,再从这些倍数中找出较少数的倍数,即这两个数的公倍数,从而确定出最小公倍数。

#include

int max(int a,int b,int c) //自定义函数max

{

if(a>b&&a>c) // 若a的值最大

return a; // 返回a

else if(b>a&&b>c) // 若b的值最大

return b; // 返回b

else

return c; // 否则返回c

}

void main()

{

int x,y,z,i,j,k;

printf("请输入三个数:");

scanf("%d%d%d",&x,&y,&z); // 从键盘输入三个数

k = max(x,y,z); //调用max函数求出其中的最大值

i= 1;

while(1) //while循环,条件值为1

{

j = k * i;

if((j%x==0) && (j%y==0) && (j%z==0)) //满足条件,退出循环

break;

i++;

}

printf("最小公倍数为%d\n",j);

}

先求两个数的最小公倍数,然后利用函数的嵌套求这三个数的最小公倍数

两个数的最小公倍数 = 两数乘积 / 最大公约数

可以用辗转相除 求 最大公约数

http://t.csdn.cn/mrUEN

#include

int f(int x,int y)

{

int a, b, c;

a = x;

b = y;

c = x%y;

while(c!=0)

{

x = y;

y = c;

c = x%y;

}

// 此时 y 是 最大公约数

return a*b/y; // 最小公倍数 = 两数乘积 / 最大公约数

}

void main()

{

int a , b , c , d;

printf("请输入三个数:");

scanf("%d%d%d",&a,&b,&c);

d = f( f(a,b),c); //嵌套调用函数f()求解

printf("最小公倍数为:%d\n",d);

}

短除法

短除法第一步是用这三个数的公因数去除这三个数

在得到的商中,再用其中两个数的公约数去除,另一个数照抄下来,不变化。直到三个商中每两个数都是互质数为止。

然后把所有的除数和商乘起来,得到的积就是这三个数的最小公倍数。

注意事项

所得的商必须两两互质,就是除了1以外没有其它公因数

参考:

https://jingyan.baidu.com/article/154b46310aee1b28ca8f41ad.html

相关养生推荐

2025年如何轻松获取第一手海外新闻:翻墙后的新闻网站指南
酷派5860深度评测:外观、配置与价格优势全解析
beat365中国在线体育

酷派5860深度评测:外观、配置与价格优势全解析

📅 08-12 👁️ 1382
足球波兰vs捷克直播
体育365真正官网下载

足球波兰vs捷克直播

📅 08-16 👁️ 691