アルゴリズム的には、a,b,c,dの変数をひたすらforで回して調べている感じですが、わざわざ4回もループを作る必要があるのか疑問です。。。
課題
10000未満の正の整数を考える。このとき、ある2つの正の整数の3乗の和として表す表し方が異なる数で2通りある数を全て求めなさい。
#include <stdio.h>
#include <math.h>
int main()
{
int a=0, b=0, c=0, d=0;
int x = 0, y = 0;
printf("hello\n");
do{
for(d=1; d<22; d++){
for(c=d+1; c<22; c++){
for(b=1; b<22; b++){
for(a=b+1; a<22; a++){
x = a*a*a + b*b*b;
y = c*c*c + d*d*d;
if(x == y && a != c && a < c){
printf("%d = %d^3 + %d^3 = %d^3 + %d^3\n", x, a, b, c, d);
}
}
}
}
}
printf("bye\n");
}while(x < 10000);
return 0;
}
hello
1729 = 10^3 + 9^3 = 12^3 + 1^3
4104 = 15^3 + 9^3 = 16^3 + 2^3
bye