題意:給定n,求n的最長的連續子因子的長度,且輸出最小的序列。
思路:我最開始就是暴力搜的,搜到最長的存下來即可,但忽略了我找的因子的乘積可能大於n,後來也沒想到什麼好的辦法,然後參考了別人的題解。首先給出12!=479001600<231
<13!=6227020800,這個要記住,從這可以看出n最長的連續子因子長度不會超過12,知道這個之後就可以從長度等於12開始,第二層迴圈表示序列的起始數字,搜到的第乙個結果即最長的序列,且最小。要注意的是質數和因子全部相鄰的數是有區別的,質數的最小序列就是本身,而後者比如105=3×5×7,最小序列是3。
**如下:
1 #include2using
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行...