哪里写错了,我想不出不来。

本题要求对任意给定的正整数N,求方程X​X​​+Y​Y=N的全部正整数解。
输入格式:
输入在一行中给出正整数N(≤10000)。
输出格式:
输出方程X​X​​+Y​Y=N的全部正整数解,其中X≤Y

img


#include<stdio.h>

int main()
{
int x =1;
int y=1;
int n;
scanf("%d",&n);
int z=xx+yy;

while( y*y <= n){
     while( z <= n){
       if(z == n){
           printf("%d %d",x,y);
              }
    y++;
    }
    x++;
    y++;
}

return 0;

}

#include <iostream>
#include <cmath>

// 由下列关系
// X*X + Y*Y = N
// 1 <= X <= Y
// 可以得出
// 1 <= X <= sqrt(N/2)
// X <= Y <= sqrt(N-1)
int main()
{
    int N;
    std::cin >> N;
    int m = (int)sqrt(N / 2);
    int n = (int)sqrt(N - 1);
    for (int X = 1; X <= m; X++)
    {
        for (int Y = X; Y <= n; Y++)
        {
            if (X * X + Y * Y == N)
                std::cout << X << ' ' << Y << '\n';
        }
    }
    return 0;
}

include <stdio.h>

include <math.h>

int main(void) {
int N, x, y, is = 0;
scanf("%d", &N);

for (x=1; x<sqrt(N)+1; x++) {
    for (y=x; y<sqrt(N)+1; y++) {
        if (N == x*x+y*y) {
            is = 1;
            printf("%d %d\n", x, y);
        }
    }
}

if (0 == is) {
    printf("No Solution");
}

return 0;

}