C語言學習 兩個數的平方和

TGSRedStone發表於2020-11-15
							兩個數的平方和

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;
			}
		}
	}
}

相關文章