C语言求两个正整数的最小公倍数

本文介绍了使用C语言求解两个正整数最小公倍数(LCM)的四种方法:定义法、借助最大公约数的辅助法,以及通过连续整除检测、欧几里得算法和相减法实现的算法。每种方法都提供了相应的代码示例,并建议理解这些方法以灵活运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里将介绍求两个正整数的最小公倍数(Least Common Multiple,LCM)的方法。提供两种主要思路,一种是直接根据最小公倍数的定义设计算法,一种是由最大公约数计算得出。下面来介绍这两种方法。

定义法

求解两个正整数的最小公倍数的第一种思路,根据定义设计算法,最小公倍数的本质是一个最小的能同时被两整数整除的自然数。我们先比较两数大小,从较大数开始向上递增,直到找到那个最小公倍数。

代码如下:

#include<stdio.h>
int main()
{
   
	int i=0;
	int m,n,temp;
	printf("请输入两个正整数:");
	scanf("%d %d",&m,&n);
	if(m<n)   //比较大小,使m为较大数,n为较小数 
	{
   
		temp=n;
		n=m;
		m=temp;
	}
	for(i=m;i>0;i++)   //从较大数开始寻找符合条件的最小公倍数 
	{
   
		if(i%m==0 && i%n==0)
		{
   
			printf("%d和%d的最小公倍数是%d",m,n,i);
			break;
		}
	}
	return 0;
}  

辅助法

求最小公倍数也可以借助最大公约数辅助计算,公式为最小公倍数=两数的乘积/最大公约(因)数。解题时避免将两个问题混淆。

连续整除检测法

这种方法的实现原理是,先取出两个数中的较小数,赋值给temp(temporary),接着用其中一个数与temp求余,若余数不为0,则temp-1,循环该步骤直到余数为0。再用另一个数,重复此步骤,最后得出的值利用公式计算得到这两个数的最小公倍数。

代码如下:

#include<stdio.h>
int main()
{
   
	int i=0;
	int m,n,temp;
	printf("请输入两个正整数:");
	scanf
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值