L1 006 連續因子

2022-05-01 13:39:09 字數 1319 閱讀 2201

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

輸入格式:

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

)。輸出格式:

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

輸入樣例:

630
輸出樣例:

3

5*6*7

思路:對題意沒有理解清楚,所有除錯了一會,這個題不是說所有因子,而是能相乘等於n的因子。好比說12這個數,

正確的輸出應該是2 2*3,而不是3 2*3*4;然後還得注意極值情況,比如0輸出1 0、1輸出1 1,2輸出1 2等等。

#include#include

#include

#include

#include

#include

using

namespace

std;

intmain()

if (se.find(num / i) ==se.end())}}

sort(vec.begin(), vec.end());

int cnt = 1, max = 1, maxp = 0

;

for (int i = 1; i < vec.size(); i++)

}cout

<< max <

for (int i = maxp; i < maxp + max; i++)

if (max != 0) cout <

return0;

}

未ac**

#include#include

#include

#include

#include

#include

using

namespace

std;

intmain()}}

if (max == 0

) cout

<< max <

for (int i = maxp; i < max + maxp; i++)

cout

<

return0;

}

方法來自:

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,要求編寫程式求出最長連續因子的個數,並輸出最小的連...