5-21 求特殊方程的正整數解

本題要求對任意給定的正整數N,求方程X^2 + Y^2 =N的全部正整數解。

輸入格式:

輸入在一行中給出正整數NN(\le≤10000)。

輸出格式:

輸出方程X^2 + Y^2 =N的全部正整數解,其中X≤Y。每組解佔1行,兩數字間以1空格分隔,按X的遞增順序輸出。如果沒有解,則輸出No Solution。

輸入樣例1:

884
輸出樣例1:

10 28
20 22
輸入樣例2:

11

#include<stdio.h>
int main(){
    int x,y,n,a;
    int flag=0;
    scanf("%d",&n);
    a=n/2;
//  printf("%d",a);
    for(x=1;x<=a;x++){
        for(y=x;y<=a;y++){
            if(x*x+y*y==n){
                flag=1;
                printf("%d %d\n",x,y);}          
        }
    }
    if(!flag)
        printf("No Solution");
    return 0;
}

x<=y 按X的遞增順序輸出 for外部循環從先開始 然後y進行內循環;
a爲輸入n的一半,不是平方根;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章