PTA刷題記錄 L1 006 連續因子 20分

2021-10-10 02:23:47 字數 922 閱讀 6369

題目描述:

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

輸入格式:

輸入在一行中給出乙個正整數 n(1輸出格式:

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

輸入樣例:

630輸出樣例:

3567

解題思路:

對於乙個數 n,他的所有因子都肯定在 sqrt(n) 內,所以使用暴力遍歷直到 sqrt(n) 為止。列舉每一次的因子為起點,往後求連續因子數,與之前的連續因子數作比較,取最大值,並計下作為起點的因子數。

最後輸出連續因子數,並從起點開始將所有因子遍歷輸出即可。

需要注意:

1)最後的輸出應該進行判斷,當輸入的數字為素數或 0 時,直接將這個數輸出即可,當然此時的因子數為 1。

通關**:

#include

#include

using

namespace std;

typedef

long

long ll;

intmain()

if(len > res)}if

(res ==0)

else

else}}

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