問題描述
已知乙個正整數n,問從1~n中任選出三個數,他們的最小公倍數最大可以為多少。
輸入格式
輸入乙個正整數n。
輸出格式
輸出乙個整數,表示你找到的最小公倍數。
樣例輸入
9樣例輸出
504資料規模與約定
1 <= n <= 106。
解答思路:
首先想要從數學角度投機取巧(貪心):
根據往常的思維我們很容易想到,三個數互質時最小的公倍數最大。因此這裡我們只需分類討論兩種情況即可。
(1)奇數-偶數-奇數,此時很顯然,三個連續的數若為此情況,三個都是互質的,則此時最大的最小公倍數即為n*(n-1)(n-2);
(2)偶數-奇數-偶數,此時因為存在兩個偶數,二者存在公因數2,最小公倍數會除以2,這樣不能保證最大(由於後面的方法只需將數前後移動1-2位,因此除以2的方法明顯會大幅減小最小公倍數),因此可以先將後面的偶數減1,得n-3,此時需要考慮n是否為3的倍數,因為若為3的倍數,明顯會與n-3有公因數3,這樣的情況更不可,所以n若不為3的倍數,最大的最小公倍數則為n(n-1)(n-3),若為3的倍數,最大的最小公倍數為(n-1)(n-2)*(n-3)
附上**:
#includeusing namespace std;
int main()
cout
}
最大最小公倍數
時間限制 1 sec 記憶體限制 128 mb 提交 125 解決 4 提交 狀態 討論版 題目描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入 每個測試點 輸入檔案 存在多組測試資料。每個測試點的第一行為乙個整數task,表示測試資料的組數。在一組測試資料中 ...
最大最小公倍數
問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9樣例輸出 504資料規模與約定 1 n 106。include include include using namespace...
最大最小公倍數
題目 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n 輸出格式 輸出乙個整數,表示你求得的最小公倍數 樣例輸入 樣例輸出 504注釋 504 9 8 7 資料規模與約定 1 n 106 分析 題目要求涉及貪心演算法,對於個人而言,更像是乙個純數...