数字是Square或者可以写成两个方格python的总和

时间:2015-09-25 19:02:58

标签: python python-3.x numbers sum square

我在python中创建了一个程序来检查一个给定的数字是否为正方形,或者可以写成两个正方形的总和,但它不起作用。请帮助我。

def sum(num):
    def m(a):
        b=a
        for item in range(a):
            b=b-1
            if a==b*b:
                return(a)
    c=num
    for item in range(1,num):
        c-=1
        if m(c)==c and m(d)==d:
            print(num)

1 个答案:

答案 0 :(得分:0)

如果平方根平方的int是其目标

,你可以检查某些东西是否是完美的正方形
def is_square(n):
    return int(n**0.5)**2 == n

第二部分有点难(虽然不难)

首先,您只需要检查目标的平方根,然后加1

for i in range(0,int(target**0.5+1)):

然后你需要查看余下的数字,你可以用

获得剩余的数字
    for j in range(i,int((target-i**2)**0.5+1)

然后你所要做的就是检查我是否平方+ j平方是你的目标,如果它是i,j是你的解决方案之一