Python3經典100道練習題003


題目:一個整數,它加上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])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM