C语言程序设计 求特殊方程的解

本题要求对任意给定的正整数N,求方程X^2+Y^2=N的全部正整数解。
输入格式:
输入在一行中给出正整数N(≤10000)。
输出格式:
输出方程X^2+Y^2=N的全部正整数解,其中X≤Y。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出No Solution。
输入样例1:
884

输出样例1:
10 28
20 22

输入样例2:
11

输出样例2:
No Solution

#include <stdio.h>
#include <math.h>

int main()
{
    int x,y,n,m,f;

    scanf("%d",&n);

    m = sqrt(n/2.0);
    f = 1;
    for(x=0;x<=m;x++)
    {
        y = sqrt(n - x*x);
        if(x*x + y*y == n)
        {
            printf("%d %d\n",x,y);
            f = 0;
        }
    }

    if(f)
        printf("No Solution");

    return 0;
}

请采纳。

温馨提示:答案为网友推荐,仅供参考
相似回答