62,623
社区成员
发帖
与我相关
我的任务
分享
//Testmain.java
package minmun;
import minmun.Loop;
public class Testmain {
public static void main(String[] args){
int x=1;
int times;
Loop lp=new Loop();
for(int n=0;n<10;x++){
//如果想得到多个这样的数,请自行修改for
//如(int n=0;n<5;x++){...后面的break换成n++
times=lp.loop(x);
if(times==2){
System.out.println(x+"="+lp.a+"^3+"+lp.b+"^3="+lp.c+"^3+"+lp.d+"^3");
n++;
}
}
}
}
//Max.java
package minmun;
public class Max {
public int maxMun(int x){
int mun=0;
while(mun*mun*mun<x){
mun++;
}
return --mun;
}
}
//Loop.java
package minmun;
import minmun.Max;
public class Loop {
int a,b,c,d;
public int loop(int x){
int times=0;
a=1;
b=new Max().maxMun(x);
c=0;
d=0;
for(;b>a;b--){
for(;a<b;a++){
if(a*a*a+b*b*b>x)break;
if(a*a*a+b*b*b==x){
times++;
if(times==1){
c=a;d=b;
}
else{
if(times==2){
return times;
}
}
}
}
}
return times;
}
}
int max = 1290;
int[] Arr = new int[max];
for (int i = 0; i < max; i++)
{
Arr[i] = (i + 1) * (i + 1) * (i + 1);
}
int a = 0;
int b = 1;
int c = 2;
int d = 3;
bool flag = true;
while ( flag)
{
b = a + 1;
while (b < max - 2 && flag)
{
c = b + 1;
while (c < max - 1 && flag)
{
d = c + 1;
while (Arr[d] <= Arr[c] + Arr[b] - Arr[a] && flag)
{
if (Arr[a] + Arr[d] == Arr[c] + Arr[b])
{
Console.WriteLine(a + 1);
Console.WriteLine(b + 1);
Console.WriteLine(c + 1);
Console.WriteLine(d + 1);
Console.WriteLine(Arr[a] + Arr[d]);
Console.WriteLine(Arr[b] + Arr[c]);
flag = false;
}
d++;
}
c++;
}
b++;
}
a++;
}
int max = 1290;
int[] Arr = new int[max];
for (int i = 0; i < max; i++)
{
Arr[i] = (i + 1) * (i + 1) * (i + 1);
}
int a, b, c, d;
a = b = c = d = 0;
bool flag = true;
while (a < max - 3 && flag)
{
b = a + 1;
while (b < max - 2 && flag)
{
c = b + 1;
while (c < max - 1 && flag)
{
d = c + 1;
while (d < max && flag)
{
if (Arr[a] - Arr[b] == Arr[c] - Arr[d])
{
Console.WriteLine(a + 1);
Console.WriteLine(b + 1);
Console.WriteLine(c + 1);
Console.WriteLine(d + 1);
Console.WriteLine(Arr[a] + Arr[d]);
Console.WriteLine(Arr[b] + Arr[c]);
flag = false;
}
d++;
}
c++;
}
b++;
}
a++;
}
Console.Read();