2015-09-25 73 views
-3

我在python中創建了一個程序來檢查給定的數字是正方形還是可以寫成兩個正方形的總和,但它不工作。我。數字是方形或可以寫成兩個正方形的總和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) 
+3

你是什麼意思不起作用?你需要提供你期望的輸出。 –

+2

你認爲d是什麼? –

+0

你是否試圖在函數中定義一個函數? – intboolstring

回答

0

你可以檢查,如果事情是一個完美的正方形,如果它的平方平方根的int是其目標

def is_square(n): 
    return int(n**0.5)**2 == n 

第二部分是有點困難(雖然不是硬)

首先,您只需檢查達到目標平方根的int,然後添加1

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

然後yo u需要走在剩餘的號碼,你可以得到德剩餘數與

for j in range(i,int((target-i**2)**0.5+1) 

那麼所有你需要做的是檢查,如果我的平方+ J平方是你的目標,如果它比i,j是您的解決方案

之一