/* x=a^3+b^3を満たす異なる2つのa,bの組を持つxを探す */ #include <stdio.h> int main(void) { int x, a1, b1, y, a2, b2; for(x = 1; x <= 10000; x++) { for(a1 = 1; a1 <= 22; a1++) { for(b1 = 1; b1<= 22; b1++) { for(y = 1;y <= 10000; y++) { for(a2 = 1; a2 <= 22; a2++) { for(b2 = 1; b2 <= 22; b2++) { x = a1*a1*a1 + b1*b1*b1; y = a2*a2*a2 + b2*b2*b2; if(x == y && a1 != a2 && b1 != b2) printf("%d\n",x); } } } } } } return 0; }
1<=x<=10000の整数xについて、x=a^3+b^3を満たす異なる整数a,bの組を2つ持つxを表示するプログラムを作ろうとしています。
例えば、1729=1^3+12^3=9^3+10^3のように異なる2つのa,bの組を持つxを探します。
じぶんの考えとしては、x=aaa+bbb, y=ccc+dddと置いて、xとyが等しく、aとcが異なり、bとdが異なる時にそのxを表示するようにしたのですが、うまくいきません。a~dの繰り返しが22までなのは3乗して10000を超えないのが22までだからです。どのように修正すればうまくできるでしょうか。言語はCです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/07 05:37
2018/05/07 12:34