問題描述
已知乙個正整數n,問從1~n中任選出三個數,他們的最小公倍數最大可以為多少。
輸入格式
輸入乙個正整數n。
輸出格式
輸出乙個整數,表示你找到的最小公倍數。
樣例輸入 9
樣例輸出
504資料規模與約定
1 <= n <= 106。
思路:當n為奇數時,n與n-2必互質,故答案應為n*(n-1)*(n-2)
當n為偶數時,情況就變得稍微複雜一些了
貪心演算法的思想是整體最優解可以通過一系列區域性最優解來得到,故可以分情況討論
如果是偶數的話,分兩種情況:
(1)如果 n 是偶數且不是三的倍數, 比如8,那麼跳過n-2這個數而選擇 8 7 5 能保證不會最小公倍數被除以2。所以最小公倍數的最大值為n * (n – 1) * (n – 3)
(2)如果 n 是偶數且為三的倍數,比如6,如果還像上面那樣選擇的話,6和3相差3會被約去乙個3,又不能構成最大值了。那麼最小公倍數的最大值為(n – 1) * (n – 2) * (n – 3)
#includeusing namespace std;
int main()
{ long long int n;
while(cin>>n)
{ if(n<=2)
{ cout<
藍橋杯 最大最小公倍數
最大的最小公倍數 time limit 1000 ms memory limit 32768 k total submit 265 71 users total accepted 63 51 users rating special judge no description 從小學我們就學過最小公倍...
藍橋杯 最大最小公倍數
題目大意 給你乙個n,然後從這1 n這n個數中取出任意三個數 可以重複 求三個數的最小公倍數,然後求任意三個數中能取到的最大值 題目思路 看樣例,猜題意,9的答案是9,8,7,然後成功猜出來奇數是直接n n 1 n 2 因為n和n 2都是奇數,公約數是1,n n 2 也是奇數,跟n 1的公約數也是1...
藍橋杯 最大最小公倍數
演算法訓練 最大最小公倍數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9 樣例輸出 504資料規模與約定 1 n 106。...