天天看點

java 最小公倍數_java中如何計算最小公倍數

java 最小公倍數_java中如何計算最小公倍數

問題描述:

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

輸入格式:

輸入一個正整數N。

輸出格式:

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

樣例輸入:

9

樣例輸出:

504

資料規模與約定:

1 <= N <= 106

線上學習視訊教程推薦:java課程

思路:

首先聲明幾個概念:

兩個非0相鄰自然數的最小公倍數是它們的乘積;相鄰兩個奇數的最小公倍數是它們的乘積;相鄰兩個偶數(0除外)的最小公倍數是它們乘積的一半。

現在上升到三個數的最小公倍數,要按照N的奇偶性分兩種情況:

一、當n為奇數:n、n-1、n-2的乘積

二、當n為偶數:n-1、n-2、n-3是一組極大解,如果答案要大于目前值,隻能是大于這3個數的乘積,那麼隻能把其中一個數變成n,并且三個數也要兩兩互質。n、n-2、n-3偶偶奇明顯不互質;n、n-1、n-3偶奇奇;n、n-1、n-2偶奇偶明顯不互質。

那麼答案隻能是n-1、n-2、n-3或者是n、n-1、n-3。但是n、n-3雖然是一個奇數,一個偶數,但是它們不