本題要求對任意給定的正整數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的一半,不是平方根;