У меня проблема, скажем так:
Найдите все две пары чисел (x, y) и (z, t) , такие что x³ + y³ = z³ + t³ , где ( x, y)! = (z, t) и x³ + y³ <10000 </strong>.
Взяв кубический корень из 10 000 гильдий 21.544 -> округлите до 21, и я получил:
#include <iostream>
using namespace std;
int main() {
for( int x = 1; x <= 20; ++x ) {
for( int y = x + 1; y <= 21; ++y ) {
for( int z = x + 1; z <= y - 1; ++z ) {
for( int t = z; t <= y - 1; ++t ) {
if( x*x*x + y*y*y == z*z*z + t*t*t ) {
cout << x << ", " << y << ", " << z << ", " << t << endl;
}
}
}
}
}
return 0;
}
Я знаю, что этот код можно оптимизировать больше, и это то, что я ищу. Кроме того, один из моих друзей сказал мне, что y может быть x + 2 вместо x + 1 , и я сомневаюсь в этом, так как если
x = 1 , тогда у нас никогда не будет y = 2 , который в этом случае пропустил одно возможное решение.
Есть мысли?