版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26398495/article/details/82191514
题目链接
题目分析
(略)
解题思路
暴力搜索即可!
AC程序(C++)
/**********************************
*@ID: 3stone
*@ACM: PAT.A096 Consecutive Factors
*@Time: 18/8/28
*@IDE: VSCode + clang++
***********************************/
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn = 100010;
int main() {
int N;
while(scanf("%d", &N) != EOF) {
int k = N, max_len = -1;
int temp_max;
int sqt = sqrt(1.0 * N);
for(int i = 2; i <= sqt; i++) {
if(N % i != 0) continue;
temp_max = 1;
int temp_N = N / i;
for(int j = i + 1; ;j++){
if(temp_N % j == 0) {
temp_N /= j;
temp_max++;
}
else {
if(temp_max > max_len){
max_len = temp_max;
k = i;
}
break;
}
}
}
if(max_len == -1) {
printf("1\n%d\n", k);
continue;
}
printf("%d\n", max_len);
for(int i = 0; i < max_len - 1; i++){
printf("%d*", k + i);
}
printf("%d\n", k + max_len - 1);
}
return 0;
}