如何求最小公倍数

第一种方法(穷举法):

#include
#include
#include
using namespace std;

int long fun(long n,long m){
	//如果n和m的乘积为0,则0为n和m的最小公倍数
	//ps:一般不考虑0和一个整数的最小公倍数,如果考虑则为0  
	if(n*m==0){
		return 0;
	}
	long max = n > m ? n : m;	//取出较大的那个数 
	//循环穷举,直到出现可以同时被两个数整除的数  
	while(1){
		if((max%n==0)&&(max%m==0)){
			break;
		}
		max++;
	}
	return max;
}

int main(){
	int n,m;
	cin>>n>>m;
	//穷举法
	cout<<"n和m的最小公倍数为:"<

第二种方法比较巧妙:利用 “最小公倍数 = 两数相乘 ÷ 两数的最大公约数” 这个公式可以很方便的求出。其中如何求两数的最大公约数在之前的帖子已经写到过了,这里不再赘述。

#include
#include
using namespace std;

//求最大公约数(GCD = greatest common divisor) 
int GCD(int m,int n){		
	if(n==0) return m;
	return GCD(n,m%n);
}

//最小公倍数=两整数的乘积 ÷最大公约数 
//求最小公倍数(LCM=lowest common multiple) 
int  LCM(int m,int n){
	return (m*n)/GCD(m,n);
}

int main(){
	int a,b;
	cin>>a>>b;
	cout<<"a和b的最小公倍数为:"<

 

你可能感兴趣的:(算法)