一开始没弄懂,参考了别人的才想通
参考C++
输入最大为 从1连续乘到12
从最大连续长度12开始递减,从start起点连续相乘 得到连续乘积
输入对连续乘积取模为0 则 连续乘积为输入的连续乘积因子
跳出循环打印连续因子
#include <stdio.h>
int main(void)
{
long start, lenth;
long i,flag = 0;
long input;
scanf("%ld",&input);
for (lenth = 12; lenth >=1; lenth--){
for (start = 2; start * start <= input; start++){
int continuous_product = 1;
for (i = start; i < start + lenth; i++)
continuous_product *= i;
//if contimuous product is a factor of the input
if (input % continuous_product == 0){
flag = 1;
goto out;
}
}
}
out:
if (!flag)
printf("1\n%ld",input);
else
{
printf("%ld\n%ld",lenth,start);
for (i = 1; i < lenth;i++){
printf("*%ld",start+i);
}
}
return 0;
}