7-21 求特殊方程的正整数解 (15 分)

一、题目要求

本题要求对任意给定的正整数N,求方程 X ​ 2 ​ ​ + Y ​ 2 ​ ​ = N X^{​2}​​ +Y^{​2}​​ = N X2+Y2=N的全部正整数解。

输入格式:

输入在一行中给出正整数N(≤10000)。

输出格式:

输出方程 X ​ 2 ​ ​ + Y ​ 2 ​ ​ = N X^{​2}​​ +Y^{​2}​​ = N X2+Y2=N的全部正整数解,其中X≤Y。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出No Solution。

输入样例1:

884

输出样例1:

10 28
20 22

输入样例2:

11

输出样例2:

No Solution

二、代码

import java.util.Scanner;

public class Main {
	
	
	public static void main(String[] args) {
		
		int x=0, y=0, N=0, flag=0;
        
		Scanner sc = new Scanner(System.in);
		N = sc.nextInt();
		
		for( x=1;x<=100;x++ ) {
			for( y=x;y<=100;y++ ) {  //关于y定义域--x<=y<=100 的处理
				if(x*x+y*y==N) {
					flag=1;
					System.out.println(x+" "+y);
					break;
				}
			}
		}
		
		if(flag==0) {
			System.out.println("No Solution");
		}
		sc.close();
	}

}

你可能感兴趣的:(PTA,Java,基础编程题目集,求特殊方程的正整数解)