PAT L1 006 連續因子(思維)

2021-08-17 11:57:22 字數 920 閱讀 8459

l1-006. 連續因子

時間限制

400 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard

作者 陳越

乙個正整數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

非常有意思的題目;

題目讓找出len個連續的數字相乘是n的約數。根據n的範圍,我們可知道,len的長度至多為12,因為(13!)>2^31;

所以,我們從最長的情況開始暴力。當len個連續數字相乘是n的約數的話,就說明找到了正確答案。當迴圈結束之後仍未找到,說明n是個質數。特判一下。

#include

using

namespace

std;

const

int max = 1e6+10;

const

int inf = 0x3fffffff;

int main()

printf("%d\n",j+len-1);

return

0;//找到了,所以跳出}}

}if(flag==0)

return

0;}

pat L1 006 連續因子

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

PAT L1 006 連續因子

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

(PAT)L1 006 連續因子

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