藍橋杯 歷屆試題 核桃的數量(求三個數的最小公倍數)

問題描述

小張是軟件項目經理,他帶領3個開發組。工期緊,今天都在加班呢。爲鼓舞士氣,小張打算給每個組發一袋核桃(據傳言能補腦)。他的要求是:

1. 各組的核桃數量必須相同

2. 各組內必須能平分核桃(當然是不能打碎的)

3. 儘量提供滿足1,2條件的最小數量(節約鬧革命嘛)

輸入格式
輸入包含三個正整數a, b, c,表示每個組正在加班的人數,用空格分開(a,b,c<30)
輸出格式
輸出一個正整數,表示每袋核桃的數量。
樣例輸入1
2 4 5
樣例輸出1
20
樣例輸入2
3 1 1
樣例輸出2

3



設a,b最大公因數爲gcd(a,b),則ab的最小公倍數lcm(a,b)=(a*b)/gcd(a,b)

三個數a,b,c的最小公倍數lcm(a,b,c)=(lcm(a,b),c)

#include <iostream>
using namespace std;
int gcd(int a,int b)
{
	return b==0?a:gcd(b,a%b);//求最大公約數
}
int main()
{
	int a,b,c,tmp,ans;
	cin>>a>>b>>c;
	tmp=(a*b)/gcd(a,b);//前兩個最小公倍數
	ans=(tmp*c)/gcd(tmp,c);//三個數最小公倍數
	cout<<ans<<endl;
	return 0;
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章