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

2021-07-10 12:27:26 字數 869 閱讀 1805

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

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

問題描述

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

輸入格式

輸入乙個正整數n。

輸出格式

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

樣例輸入 9

樣例輸出

504資料規模與約定

1 <= n <= 106。

題解:1,大於2的自然數和其相鄰的自然數必定互質

2,互質的數的最小公倍數為其乘積

3,大於2的

相鄰的奇數互質

那麼可以知道如下貪心選取情況:(討論的前提條件是:保證元素全部

為正)1,如果n為奇數,n,n-1,n-2 三個數互質(兩兩互質),選取這三個數

2,n為偶數時,n 和n-2 會有約數 2 ,因此n-2 不可以選,退一步選最大的奇數 n-3

討論2 中的情況:

(1),如果n 不能被 3 整除,那麼 n,n-1 和 n-3 必定兩兩互質,

(2),如果n 能被3 整除,那麼 n 和 n-3 有公因子,因此不選 n ,剩下的元素 與 n-1,n-3 互質的最大元素便是 n-2 了,三者乘積

敘述的也許不夠嚴密,可以自己找資料試驗一下。

ps:公認的藍橋杯官網後台資料有誤,60%正確即為測試通過。

#includetypedef long long ll;

ll slove(ll n)

if(n%3)

return (n-1)*(n-2)*(n-3);

}int main()

return 0;

}

最小公倍數(數學)

其實也沒什麼。就是用到了按位取模和最後對整個數取模的答案是一樣的結論。但是蒟蒻我想的太複雜了,甚至還寫了高精度。放上醜陋無比的 include include include include include define maxn 246913578 define mod 1234567890 us...

演算法訓練 最大最小公倍數(數論)

問題描述 已知乙個正整數n,問從1 n中任選出三個數,他們的最小公倍數最大可以為多少。輸入格式 輸入乙個正整數n。輸出格式 輸出乙個整數,表示你找到的最小公倍數。樣例輸入 9樣例輸出 504資料規模與約定 1 n 106。思路 若n 和 n 1和n 2 三個數 兩兩互質的話,那麼結果就是這三個數的積...

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

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