PTA L1 006 連續因子 20分

2022-07-15 19:48:12 字數 862 閱讀 7561

l1-006 連續因子 (20分)

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

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

首先在第 1 行輸出最長連續因子的個數;然後在第 2 行中按因子1*因子2*……*因子k的格式輸出最小的連續因子序列,其中因子按遞增順序輸出,1 不算在內。

630
3

5*6*7

思路:首先,對於乙個數的因數,最大的不會超過他的本身開方,所以我們可以用這個數的本身的開根方作為外迴圈的邊界,如果這個數對迴圈裡的數取餘得到的不為0,那麼迴圈裡的數不是該數的因數,直接跳過,否則,以其為基數,在此基礎上累加,並累乘,去取餘和和邊界比較,符合條件,繼續,否則跳出,跳出後要與y(統計的最長連續因子數)比較,大於的話就更新,最後依次輸出就好。其中有乙個特殊情況,就是並沒有連續的因子序列,這種情況就需要我們特殊的考慮出來了。

1 #include2 #include3

using

namespace

std;

4int

main()

514 a=1;15

for(j=i;j<=m;j++)

19 a*=j;20}

21if(j-i>y)25}

26if(y==-1

)29 cout30 cout<31for(i=x+1;i)

34return0;

35 }

pta L1 006 連續因子 20分

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

PTA L1 006 連續因子 DFS

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

PTA L1 006 連續因子 暴力模擬

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