PAT L1 6 最長連續因子

2021-07-11 19:50:06 字數 1133 閱讀 8538

l1-6.最長連續因子

乙個正整數n的因子中可能存在若干連續的數字。例如

630 可以分解為3∗

5∗6∗

7 ,其中5、

6、7 就是

3 個連續的數字。給定任一正整數n,要求編寫程式求出最長連續因子的個數,並輸出最小的連續因子序列。

輸入格式:

輸入在一行中給出乙個正整數n(

1<

n<

231)

輸出格式:

首先在第1行輸出最長連續因子的個數;然後在第2行中按「因

子1∗因

子2∗…

…∗因子

k」的格式輸出最小的連續因子序列,其中因子按遞增順序輸出,

1 不算在內。

輸入樣例:

630輸出樣例: 3

5∗6∗

7 題解;

暴力解決,從i=

sqrt

(n) 往回掃。

需要注意的問題(理清的思路):

(1)假設前i個數中,有n的最長連續因子比如為7∗

6∗5 ,那麼只需要判斷7是否為n的因子,並且

7 的前一位

6是否是n/

7 的因子,迴圈下去即可。(這是要保證5∗

6∗7 為

630=3∗

5∗6∗

7 中的一部分,也可以說是要保證這些連續因子的乘積在n之內,比如n=120,其最長連續因子為2∗

3∗4∗

5 ,而不是2∗

3∗4∗

5∗6 )\\這裡我參考了walker這哥們的題解,因為我之前認為只要是其因子且連續便可滿足,然後交上去只對了一部分,那位哥們鏈結如下:

(2)這題我今晚寫了兩個多小時,腦子快**了其中我還遇到了挺多疑惑,暫時想不起了,想到再寫上來以解決很多和我一樣剛接觸acm的小白,這也是我第一篇部落格,所以不是很專業,見諒。

下面是ac**:(**我就先不注釋了,看不懂的問我,大神忽略)

#include#includeusing namespace std;

int main()

}if(cnt>=t)

}return 0;

}

PAT L1 6 連續因子 暴力

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

團體天梯 PAT L1 6 連續因子

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

pat L1 006 連續因子

直接搜尋因子。注意題幹要求因子的乘積不大於n。輸出最小的乘積的因子,即 如果沒有連續的因數,那麼輸出最小的那個因數。include include include include include include include using namespace std typedef long lon...