演算法訓練 最大最小公倍數
時間限制: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。找最大的三個兩兩互質的數,大於...