题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805370650738688
写出来的程序最后一个测试用例超时了,19分。也是醉了,把循环里的 i * i <= n的写法编程 i <= sqr, 就对了。看来就超时了一点点。
#include <cstdio>
struct consecutive{
int a[35];
int num;
}max, temp;
int main(){
int n, m, j;
scanf("%d", &n);
max.num = 0;
for(int i = 2; i * i <= n; i++){
temp.num = 0;
m = n;
j = i;
while(m % j == 0){
m /= j;
temp.a[temp.num++] = j++;
}
if(temp.num > max.num)
max = temp;
}
if(max.num == 0){
max.num++;
max.a[0] = n;
}
printf("%d\n", max.num);
for(int i = 0; i < max.num; i++){
printf("%d", max.a[i]);
if(i < max.num - 1)
printf("*");
}
printf("\n");
return 0;
}