就是搜索,从每个能够整除的因子开始往下连续搜索,直到不能再整除,退回以后找下一个能够整除的因子;
唯一的点是素数输出其本身,个数为1;
#include<iostream>
#include<math.h>
using namespace std;
long long int length=0,ans=0,l;
long long int find(long long int n,long long int fec,long long int l)
{
if(n%fec==0)
{
return find(n/fec,fec+1,l+1);
}
else
return l;
}
int main()
{
long long int n;
cin>>n;
for(int i=2;i<sqrt(n);i++)
{
if(n%i==0)
{
l=find(n/i,i+1,1);
if(l>length)
{
length=l;
ans=i;
}
}
}
if(length==0)
{
cout<<l+1<<endl;
cout<<n<<endl;
}
else
{
cout<<length<<endl;
for(int i=0; i<length-1; i++)
cout<<ans+i<<"*";
cout<<ans+length-1<<endl;
}
return 0;
}