为什么高精度出问题了?
#include<bits/stdc++.h>
using namespace std;
int n,h,s,a[505],x[10005],len=1;
int main(){
cin>>n;
s=sqrt(2*n);
h=(s+1)*s/2-1;
if(h<n)
{
s++;
h=h+s;
}
for(int i=2;i<=s;i++)
{
a[i]=1;
}
if(h-n==1)
{
a[2]=0;
a[s++]=0;
a[s]=1;
}
else
{
a[h-n]=0;
}
x[1]=1;
for(int i=2;i<=s;i++)
{
if(a[i]>0)
{
cout<<i<<" ";
for(int j=1;j<=len;j++)
{
x[j]=x[j]*i;
}
for(int j=1;j<=len;j++)
{
x[j+1]+=x[j]/10;
x[j]=x[j]%10;
}
while(x[len+1]>0)
{
x[len+1]+=x[len]/10;
x[len]=x[len]%10;
len++;
}
}
}
cout<<endl;
for(int i=len;i>=1;i--)
{
cout<<x[i];
}
return 0;
}