題目:一個整數,它加上100后是一個完全平方數,
再加上268又是一個完全平方數,請問該數是多少?
方法:利用循環去判斷x+100和x+268是否為完全平方數,沒用使用其他函數,缺點運算速度慢
1 x=-100 2 while x<=2000: 3 y=x+100 4 z=x+268 5 p=0 6 q=0 7 if y==1: 8 p=1 9 else: 10 for i in range(1,int(y/2)): 11 if i**2==y: 12 p=1 13 continue 14 15 16 if z==1: 17 q=1 18 else: 19 for i in range(1,int(z/2)): 20 if i**2==z: 21 q=1 22 continue 23 24 25 if p==1 and q==1: 26 print(x) 27 28 x=x+1
【網上好辦法】
方法一:
1 t = [] 2 for m in range(168): 3 for n in range(m): 4 if m**2 - n**2 == 168: 5 x = n**2 - 100 6 t.append(x) 7 print('符合條件的整數有:',t )
方法二:
1 x=[] 2 for m in range(-168,169): 3 for n in range(-168,169): 4 if (m+n)*(m-n)==168:#m,n都是整數 5 x.append(n**2-100) 6 x=set(x)#用集合的方法去掉重復值 7 x=list(x)#將集合類型改為列表類型 8 print('要求的值為:',x)
方法三:
1 print([n**2-100 for m in range(168) for n in range(m) if(m+n)*(m-n)==168])