團體天梯賽 PTA 7 62 連續因子(20分)

2021-09-29 16:21:11 字數 674 閱讀 9695

7-62 連續因子(20分)

乙個正整數 n 的因子中可能存在若干連續的數字。例如 630 可以分解為 3×5×6×7,其中 5、6、7 就是 3 個連續的數字。給定任一正整數 n,要求編寫程式求出最長連續因子的個數,並輸出最小的連續因子序列。輸入在一行中給出乙個正整數 n(1首先在第 1 行輸出最長連續因子的個數;然後在第 2 行中按 因子1因子2……*因子k 的格式輸出最小的連續因子序列,其中因子按遞增順序輸出,1 不算在內。

630
3

5*6*7

如果n為素數,則最長連續因子序列長度為1,只有n本身和1為因子,只需輸出n。

如果n不為素數,因為根號n到n之間沒有因子,則從i=2開始遍歷到i=sqrt(n),暴力獲得n的最長連續因子。

注意到n的範圍為(1,2^31),因為int的最大值為2 ^31,故需要用long來記錄n和最長因子序列最大值。

#include

using

namespace std;

intmain()

//更新數值

if(numif(num==

0) cout<<

1

else

}return0;

}

PTA 天梯賽 L1 006 連續因子

這樣的模擬題應該算是第一階梯裡最難的那個了,其次就是二維字元陣列操作的題。這個題因為說了給的數的範圍是在二的三十一次方以內,所以連續因子的長度最長也不會超過12,因為12的階乘是超過這個範圍的,然後就暴力求解吧,三層迴圈列舉每種長度每種開始,找到之後就結束。否則的話就輸出1,表示最長的序列就是它本身...

PTA天梯賽L1 006 連續因子

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

團體程式設計天梯賽 L1 006 連續因子

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