看到這個題上來就不會,以為是求最小公倍數,但實際上是考慮三個互質的數的乘積
因為範圍是任選的所以要考慮兩種情況
當輸入的這個數是奇數比如 9
1 2 3 4 5 6 7 8 9
這麼一看肯定7 8 9 的最小公倍數是最大的,直接相乘,規律就是n*(n-1)(n-2)
當輸入的這個是偶數比如10
1 2 3 4 5 6 7 8 9 10
8 9 10 這時候是兩個偶數,肯定要變啊變誰好呢,變成啥樣啊,當然要往互質的方向變!
啥樣的三個數的組合才互質
任意兩個不能除開2和3。
那就是那就照著上一種情況變唄,上一種情況是啥情況啊,奇偶奇
這個規律都是圍繞著你輸入的n變得這一看就是7 9 10
那就是 n(n-1)(n-3)
但問題就來了
你要是12的話 10 11 12
變成 9 10 12 這都能除開三啊
就特殊情況特殊處理唄,來個if(n%3==0)改不了小的偶數,就改大的,n本身。(n-1)(n-2)(n-3)
這個題的條件
資源限制
時間限制:1.0s 記憶體限制:256.0mb
問題描述
已知乙個正整數n,問從1~n中任選出三個數,他們的最小公倍數最大可以為多少。
輸入格式
輸入乙個正整數n。
輸出格式
輸出乙個整數,表示你找到的最小公倍數。
樣例輸入
9樣例輸出
504資料規模與約定
1 <= n <= 106。
所以n 用long long int型,要是輸入1或2,那就直接返回n
**如下:
#includeusing namespace std;
int main()
else cout<}
return 0;
}
試題 演算法訓練 最大最小公倍數
資源限制時間限制 1.0s 記憶體限制 256.0mb 問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9樣例輸出 504資料規模與約定 1 n 106。做題思路 找三個最大的...
最大最小公倍數 演算法訓練
時間限制 1.0s 記憶體限制 256.0mb 問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9樣例輸出 504資料規模與約定 1 n 106。找最大的三個兩兩互質的數,大於...
演算法訓練 最大最小公倍數
問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9 樣例輸出 504資料規模與約定 1 n 106。很水的一道題,想通如果是偶數的情況就搞定了,另外要注意下資料很大,需要lon...