-4

我在 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)
4

1 回答 1

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)

那么您所要做的就是检查 i squared + j squared 是否是您的目标,如果它不是i,j您的解决方案之一

于 2015-09-25T19:19:18.913 回答