オリジナルタイトルリンク
合計時間制限:65536kB:メモリ制限を1000ミリ秒
説明
フォーム\(A ^ {2} \) = \(B ^ {2} \) + \(C 2 ^ {} \) + \(D 2 ^ {} \)式が完全キューブと呼ばれていますスタイル。例えば、123 + 83 + 63 = 103。
すべての4つのタプル(A、B、C、Dを探して、任意の正の整数N(N≤100)のために、プログラムを書く ) ように
\(A ^ {2} \) = \({2 ^ B } \) + \(C 2 ^ {} \) + \ ^ {} \(D 2) 、式中、a、b、c、dが1より大きく、またはより少ないN、およびb <= C <= Dです。
エントリー
正の整数N(N≤100)。
輸出
出力の各行に完璧なキューブ。出力フォーマット:
キューブ= A、トリプル=(B、C、D)
を特徴と大腿四頭筋に、B、C、D、それぞれ、実際の位置が計算された値。
大出力に、小さな値に従ってください。同じ値の2つの完全立方方程式は、より小さなB優先値ときに
出力が同じ出力優先小さな値cまま、同じ値が小さいDに出力されます。
思考
水問題を取得、暴力の失われた四サイクルができていました。唯一の注意点は、B、Cを所定の被験体は、dが2からように、1より大きいことである
列挙= 0900 1から出発することと一致している場合ならば、列挙を開始し(\ ^ {2})\ = (\ ^ {2} B \) + \(C 2 ^ {} \) + \(D 2 ^ {} \) 。
コード
#include<iostream>
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;
}