Collapse | Copy Code

public class CubeSum implements Comparable<CubeSum> {

private final int sum;

private final int sum2;

private final int i;

private final int j;

private final int a;

private final int b;

public CubeSum(int i, int j,int a, int b) {

this.sum = i*i*i + j*j*j;

this.i = i;

this.j = j;

this.a = a;

this.b = b;

this.sum2 = a * a * a + b * b * b;

}

public CubeSum(int w

public int compareTo(CubeSum that) {

if (this.sum < that.sum) return -1;

if (this.sum < that.sum) return +1;

return 0;

}

public String toString() {

return sum + " = " + i + "^3" + " + " + j + "^3";

}

public static void main(String[] args) {

int N = Integer.parseInt(args[0]);

// initialize priority queue

MinPQ<CubeSum> pq = new MinPQ<CubeSum>();

pq.insert(new CubeSum(0,1);

for (int i = 0,j = 1; i & j <= N; i+=2,j+=2) {

pq.insert(new CubeSum(i, i,j,j,));

if(i>0 && j>1)

{

pq.insert(new CubeSum(0,i,0,j);

}

}

for(int i =0;i<N;i++)

{

for(int j=i+1;j<N;j++)

{

if(pq.sum[i] == pq.sum2[j])

System.out.println("the sum is" + sum[i] + "and the value of i is" + pq.i + " and j is" + pq.j + "and a is" + pq.a + "and b is " + pq.b

}

}

// find smallest sum, print it out, and update

while (!pq.isEmpty()) {

CubeSum s = pq.delMin();

StdOut.println(s);

}

}

}

am now confused on how to use this program to find all distinct integers a, b, c, and d between 0 and 10^6 such that a3 + b3 = c3 + d3, e.g., 1729 = 9^3 + 10^3 = 1^3 + 12^3.

this is the code i have devised which i think will work,but everytime i run it,i get an error message when i try to iterate through PQ to determine if sum = sum