PTA L1 006 連續因子 DFS

2021-09-03 07:14:52 字數 923 閱讀 5125

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

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

630
3

5*6*7

題意:找乙個正整數的最長連續因子 

素數的因子只有1和其本身,本題中1不算在因子內

最後乙個測試點很坑,一定要用sqrt函式去開平方,不然會超時(19分) 

#include#include#include#include#include#include#define inf 0x3f3f3f3f

using namespace std;

typedef long long ll;

bool is_prime(int x)

return true;

}int dfs(int v, int fac, int len)

else return len;

}int main()

int maxl = 0, res;

for (int i = 2; i <= sqrt(n); i++)

} }printf("%d\n", maxl);

for (int i = 0; i < maxl - 1; i++)

printf("%d\n", res + maxl - 1);

return 0;

}

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行...

PTA L1 006 連續因子 20分

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