#include<stdio.h> #include<math.h> int main() { int n = 0; scanf("%d", &n); int i = 0,j=0, a = 0, sum=0,num = 0,temp=0,qidian1=0,qidian2=0; int x = sqrt(n);// 连续因子当中最大的那一个 一定会小于这个正整数的平方根 //找连续因子 for (i = 2;i <= x;i++) { num = 0;// num 是使用来记录 满足条件的连续数的个数 ,每次使用完后要初始化为0 , sum = n; qidian1 = i; //记录最开始连续的是哪一个数 //判断 i 是否满足是连续的 for (j = i;sum%j==0&&sum!=0;j++) { sum /= j; num++; } //筛选最长因子个数 if (num > temp) { temp = num; qidian2 = qidian1; // 记录最长连续因子的 起点 } } // 判断是否有连续因子 if (temp == 0) printf("1\n%d", n); else { printf("%d\n", temp); i = qidian2; while (i < qidian2 + temp) { if (i != qidian2) printf("*"); printf("%d", i); i++; } } return 0; }