neuq oj 1008 公約公倍C++

求兩數的最大公約數和最小公倍數

題目描述

輸入兩個正整數m和n,求其最大公約數和最小公倍數。

輸入

輸出

樣例輸入

2 3

樣例輸出


1
6

代碼

#include<iostream>
using namespace std;


int GCD(int a,int b)
{
	int temp,gcd0;
	if(a<b)//大數在a
	{
		temp=a;
		a=b;
		b=temp;
	}
	while(b!=0)//輾轉相除法,大數除以小數,直至除盡
       {
	    temp=a%b;
	    gcd0=b;
	    b=temp;
	}
	
    return gcd0;
}

int LCM(int a,int b)
{
	int lcm0;
	lcm0=a*b/GCD(a,b);
	return lcm0;
}

int main()
{
	int num1,num2,gcd,lcm;
	cout<<"求兩個數的最大公約數和最小公倍數"<<endl;
	cout<<"請輸入兩個數:";
    cin>>num1>>num2;
	gcd=GCD(num1,num2);
	lcm=LCM(num1,num2);
	cout<<"最大公約數爲:"<<gcd<<endl;
	cout<<"最小公倍數爲:"<<lcm<<endl;
	return 0;
}

體會:
最大公約數Greatest Common Divisor(GCD)求法:輾轉相除法、更相減損法
最小公倍數Lowest Common Multiple求法:分解質因數法、公式法(兩個數的乘積等於這兩個數的最大公約數與最小公倍數的積
發佈了33 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章