pta l1 6(連續因子)

2022-08-21 19:42:09 字數 678 閱讀 1608

題意:給定n,求n的最長的連續子因子的長度,且輸出最小的序列。

思路:我最開始就是暴力搜的,搜到最長的存下來即可,但忽略了我找的因子的乘積可能大於n,後來也沒想到什麼好的辦法,然後參考了別人的題解。首先給出12!=479001600<231

<13!=6227020800,這個要記住,從這可以看出n最長的連續子因子長度不會超過12,知道這個之後就可以從長度等於12開始,第二層迴圈表示序列的起始數字,搜到的第乙個結果即最長的序列,且最小。要注意的是質數和因子全部相鄰的數是有區別的,質數的最小序列就是本身,而後者比如105=3×5×7,最小序列是3。

**如下:

1 #include2

using

namespace

std;

34 typedef long

long

ll;5

ll n,suc,bg,len;67

intmain()

16if(mul>n) break;17

if(n%mul==0)22

if(suc) break;23

}24if(suc) break;25

}26if(suc)

32 printf("\n"

);33}34

else

37return0;

38 }

PTA L1 006 連續因子 DFS

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

pta L1 006 連續因子 20分

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

PTA L1 006 連續因子 暴力模擬

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