求最小公倍数的三种方法

求最小公倍数首先要知道最小公倍数的概念

最小公倍数是能同时被a和b整除的最小整数。

这里假设输入a = 12,b = 8。


法1:

求a和b的最小公倍数,那么a和b 的最小公倍数就不可能小于a与b这两个数中的最大值,所以先令a,b这两个数中的最大值来同时除以a,b,若能整除,则a与b 中的最大值就为最小公倍数;若不能,则max++

代码实现:

#include <stdio.h>
int MAX(int x,int y);//求最大值函数
int main()
{
	int a,b;
	scanf("%d%d",&a,&b);
	int max = 0;
	max = MAX(a,b);
	
	while(max)
	{
		if(max % a == 0 && max % b == 0)
		{
			printf("最小公倍数为:%d",max);
			break;
		}
		max++;	
	}
	return 0;
 }
int MAX(int x,int y)
{
	if(x>y)
	return x;
	else 
	return y;
 } 

法2:

a*b/最大公约数=最小公倍数,这样一来就既要求最小公倍数还要求最大公约数,所以这种方法比较适合既需要求最小公倍数也需要求最大公约数的

代码实现:

#include <stdio.h>
int main()
{
	int a,b;
	int count = 0;//定义count来表示公约数 
	scanf("%d%d",&a,&b);
	for(int i=1;i<=a;i++)
	{
		if(a % i == 0)
		{
			if(b % i == 0)
			count = i;
		}
	}
	printf("%d\n",count);//此时count就是最大公约数 
	int cride = 0;
	cride = a*b/count;//此时cride就是最小公倍数
	printf("%d\n",cride); 
	return 0;
}

法3

用a的倍数来除以b,若能整除,则求出了最小公倍数。这里可以用一个while循环来实现

代码实现:

#include<stdio.h>
int main()
{
	int a,b;
	int i = 1;
	scanf("%d%d",&a,&b);
	while(a*i % b != 0)
	{
		i++;
	}
	printf("%d",a*i);//a*i就为最小公倍数
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遇见陌生人了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值