求特殊方程的正整数解 ------Python实现

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

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

输入格式:

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

输出格式:

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

输入样例1:

884

输出样例1:

10 28
20 22

输入样例2:

11

输出样例2:

No Solution
import math
n=input()
n=int(n)
ok=False
if(n>0 and n<=10000):
    for x in range(int(math.sqrt(n))+1):
        for y in range(int(math.sqrt(n))+1):
            if(x>0 and y>0and x<=y and x*x+y*y==n):
                print("{0} {1}".format(x,y))
                ok=True
    if(not ok):
        print("No Solution")

 

你可能感兴趣的:(Python,PTA基础题解)