当我尝试实现我为解决莱昂哈德欧拉猜想而编写的这个程序时,我遇到了疯狂的错误。错误似乎在println
. 你知道我做错了什么吗?(在我运行程序之前没有错误,之后出现错误消息)我正在实现的内容相当简单,所以我不太确定它为什么不合作。
ps 我在另一个网站上阅读到将输出消息分配为字符串对象并打印该字符串对象,但这只是将另一条错误消息添加到列表中。
public static void main(String[] args) {
BigInteger max = new BigInteger("Integer.MAX_VALUE");
// for(int a=0; a<max; a++)
for(BigInteger a=BigInteger.ZERO; a.compareTo(max)<=0; a=a.add(BigInteger.ONE)){
for(BigInteger b=BigInteger.ZERO; b.compareTo(max)<=0; b=b.add(BigInteger.ONE)){
for(BigInteger c=BigInteger.ZERO; c.compareTo(max)<=0; c=c.add(BigInteger.ONE)){
for(BigInteger d=BigInteger.ZERO; d.compareTo(max)<=0; d=d.add(BigInteger.ONE)){
// a^4
a=a.pow(4);
// b^4
b=b.pow(4);
// c^4
c=c.pow(4);
// d^4
d=d.pow(4);
// a+b+c
BigInteger sum = new BigInteger("a.add(b).add(c)");
// if( sum == d^4 )
int euler = sum.compareTo(d);
if( euler ==0)
{
System.out.println(a+"^4+"+b+"^4+"+c+"^4="+d+"^4");
}
}
}
}
}
}