C++数组编程问题,求大神指教

得到的结果是有重复的,如何删掉?请指教
代码如下:

#include
#include

using std::cin;
using std::cout;
using std::endl;

int main(){
int X, Y, Z, D, M;
int x, y, z, d, a, k;

cin >> M;

for (d = 1; d <= (pow(M, 1.0 / 3.0)); d++)
    for (y = 1; y <= (sqrt(M / 2.0)); y++){
        z = d * (2 * y * y + d * d + 2 * y * d);
        for (k = 1; k <= (M / z); k++){
            Z = k * z;
            a = k * (y * y + d * d + y * d);
            Y = a * y;
            D = a * d;
            X = Y + D;
            cout << X << ' ' << Y << ' ' << Z << endl;

    }
return 0;

}

z = d * (2 * y * y + d * d + 2 * y * d);后面怎么没括号?3个“{”2个“}”这能运行吗?