問題
^ 3 = B ^ 3 +のような形を C ^ 3 + D ^ 式3それは完璧な三次方程式と呼ばれています。
例えば、12 ^ 3 ^ 3 = 6 + 8 + 10 ^ 3 ^ 3。
すべて探して、任意の正の整数N(N≤100)のために、プログラムを書く
ようA3 = B3 + C3 + D3、その四つ組(A、B、C、D)、
ここで、A、B、C、D 1より大きい、以下N、およびb <= C <= D。
正の整数N(N≤100)を入力します。
出力の各行完璧な立方体の出力。
出力フォーマット:キューブ=、トリプル=( B、C、D)
を特徴と大腿四頭筋に、B、C、D、それぞれ、実際の位置が計算された値です。
大出力に、小さな値に従ってください。完全立方方程式の同じ2つの値は、その後、場合
b値出力低い優先度を出力する同じ小さな値のD、優先出力cの値が小さいほど、同一のままであります
サンプル入力
24
サンプル出力
キューブ= 6、トリプル=(3,4,5)
キューブ= 12、トリプル=(6,8,10)
キューブ= 18、トリプル=(2,12,16)
キューブ= 18、トリプル=(9,12、 15)
キューブ= 19、トリプル=(3,10,18)
キューブ= 20、トリプル=(7,14,17)
キューブ= 24、トリプル=(12,16,20)
ソリューションの概要:
カルテット列挙サイクルABCD、最内層における最外層A、D、各層は、列挙上昇される
[2、N]列挙の範囲を
B範囲[2、1 ]
C範囲[B、-1]
の範囲内のD [C、-1]
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int N;
cin>>N;
for(int a=2;a<=N;a++)
for(int b=2;b<a;b++)
for(int c=b;c<a;c++)
for(int d=c;d<a;d++)
if(a*a*a==b*b*b+c*c*c+d*d*d)
printf("Cube==%d,Triple=(%d,%d,%d)\n",a,b,c,d);
return 0;
}