两个数的平方和
Description
给出一个整数N,将N表示为2个整数i与j的平方之和(i <= j),如果有多种表示,按照i的递增序输出。
例如:N = 130,130 = 3^2 + 11^2 = 7^2 + 92(注:32 + 112同112 + 3^2算1种)
Input
一个数N(1 <= N <= 10^9)
Output
共K行:每行2个数,i j,表示N = i^2 + j^2(0 <= i <= j)。
Sample Input
130
Sample Output
3 11 7 9
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
for(int i=1;;i++)
{
if(i*i>n/2)//为了避免9 7 和 7 9 的重复出现将i的平方>n的一半作为判断条件。
{
return 0;
}
for(int j=1;;j++)
{
if(n==i*i+j*j)
{
printf("%d %d\n",i,j);
}
if(n<i*i+j*j)
{
break;
}
}
}
}