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/num為0,n為素數
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 行輸出最長連續因子的個數 然後...