演算法訓練 最大最小公倍數

2022-06-05 05:39:09 字數 943 閱讀 9700

資源限制

時間限制:1.0s   記憶體限制:256.0mb

問題描述

已知乙個正整數n,問從1~n中任選出三個數,他們的最小公倍數最大可以為多少。

輸入格式

輸入乙個正整數n。

輸出格式

輸出乙個整數,表示你找到的最小公倍數。

樣例輸入

樣例輸出

資料規模與約定

1 <= n <= 106。

從大到小看,首先分為兩種情況:n為奇數 和 n為偶數——

①n為奇數:n和n-2都是奇數,互質,n-1是偶數,與n和n-1也互質,那麼最大最小公倍數就是三者之積 n*(n-1)*(n-2)(奇-偶-奇);

②n為偶數:n和n-2都是偶數,存在公因數2,這是不允許的,故不取n-2,向前移一位取n-3,那麼最大最小公倍數就是 n*(n-1)*(n-3)(偶-奇-奇),但這時需要注意,若n是3的倍數,那麼n-3也是3的倍數,兩者存在公因數3,這就更不允許了,所以兩個奇數不變,我們改那個偶數,即不取n了,而取n-2,那麼最大最小公倍數就是(n-1)*(n-2)*(n-3)(奇-偶-奇)。

1 #include 2 #include 3 #include 4 #include 5 #include 

6 #include 7 #include 8

9using

namespace

std;

10 typedef long

long

ll;11

12int

main()

19else

23 cout24return0;

25 }

最大最小公倍數 演算法訓練

時間限制 1.0s 記憶體限制 256.0mb 問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9樣例輸出 504資料規模與約定 1 n 106。找最大的三個兩兩互質的數,大於...

演算法訓練 最大最小公倍數

問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9 樣例輸出 504資料規模與約定 1 n 106。很水的一道題,想通如果是偶數的情況就搞定了,另外要注意下資料很大,需要lon...

演算法訓練 最大最小公倍數

問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9樣例輸出 504資料規模與約定 1 n 106。問題描述 最直接的想法就是找三個最大的互質數,這裡有個關係就是若n是奇數,那麼...