1096 Consecutive Factors (20)(20 分)
作者: CHEN, Yue
单位: PAT联盟
时间限制: 400ms
内存限制: 64MB
代码长度限制: 16KB
Among all the factors of a positive integer N, there may exist several consecutive numbers. For example, 630 can be factored as 3*5*6*7, where 5, 6, and 7 are the three consecutive numbers. Now given any positive N, you are supposed to find the maximum number of consecutive factors, and list the smallest sequence of the consecutive factors.
Input Specification:
Each input file contains one test case, which gives the integer N (1<N<2^31^).
Output Specification:
For each test case, print in the first line the maximum number of consecutive factors. Then in the second line, print the smallest sequence of the consecutive factors in the format "factor[1]*factor[2]*...*factor[k]", where the factors are listed in increasing order, and 1 is NOT included.
Sample Input:
630
Sample Output:
3
5*6*7
这道题我是按照《算法笔记》的顺序来刷的,《算法笔记》把这道题放到了“质因子分解”一节中,其实也让我走了一些思维的弯路。
首先这道题和质因子毫无关系,如果一开始以分解因子的思路去思考的话可能会更接近正确的答案。
然后说一下这道题正确的思路吧,其实就是分解因子,而且是以非常暴力的手段去寻找连续因子,判断以2开始不断加一形成的序列是否是n的因子,如果不是记录当前连续的因子头和长度,以3开始接着试。直到多少为止呢,从质因子这一节我们有一个结论就是,对于一个大于等于2的整数n,它的因子至多有一个大于等于,所以我们可以放心的在[2, ] 这个范围去寻找连续因子,如果最大长度只有1,也必定是小于