L1 006 連續因子(帶樣例)

2021-08-17 15:32:38 字數 662 閱讀 6088

//這個連續因子的題目我交了18遍,幾乎讓我把測試樣例都是出來了

首先注意題意的理解,這個連續因子a*b*c*d*...是要保證n能整除(a*b*c*d*...),而不是只要a、b、c、d等是n的因子就可以了。比如說,對於60(2*2*3*5)來說,2*3是連續的因子,3*4*5也是(更長),但2*3*4*5就不是連續的所要求的因子了(因為他乘起來超過了60,所以用連續的除法可以來解決這個問題)。

超過根號n的數不可能存在兩個連續的因子了(不然乘起來就超過根號n了哦~)。

那根號n一下沒有因子怎麼辦呢?那就說明n是個素數,輸出1(回車)n(回車)就好了。

#include#includeint main()

t = n;

curl = 0;

j = flag == 1 ? curi+1 : j+1; //如果剛剛處在連除狀態,則從進入連除狀態時的下乙個數開始

//因為有個測試樣例是2220,原答案給出的是2*3,而最長的是3*4*5,這是由於我的j遞增跳過了重疊部分

flag = 0;

} }if(curl > maxl)//跑完根號n的判斷

if(maxl>0)

}else//如果過了根號n還沒有因子,說明是素數,輸出它本身

return 0;

}

L1 006 連續因子

乙個正整數n的因子中可能存在若干連續的數字。例如630可以分解為3 5 6 7,其中5 6 7就是3個連續的數字。給定任一正整數n,要求編寫程式求出最長連續因子的個數,並輸出最小的連續因子序列。輸入格式 輸入在一行中給出乙個正整數n 131 輸出格式 首先在第1行輸出最長連續因子的個數 然後在第2行...

L1 006 連續因子

乙個正整數n的因子中可能存在若干連續的數字。例如630可以分解為3 5 6 7,其中5 6 7就是3個連續的數字。給定任一正整數n,要求編寫程式求出最長連續因子的個數,並輸出最小的連續因子序列。輸入格式 輸入在一行中給出乙個正整數n 131 輸出格式 首先在第1行輸出最長連續因子的個數 然後在第2行...

L1 006 連續因子

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 乙個正整數n的因子中可能存在若干連續的數字。例如630可以分解為3 5 6 7,其中5 6 7就是3個連續的數字。給定任一正整數n,要求編寫程式求出最長連續因子的個數,並輸出最小的連...