#匯入math以使用sqrt
import math
for n in range(10000):
#n + 100 和 n + 268後開平方,再轉化為整型值
x = int(math.sqrt(n + 100))
y = int(math.sqrt(n + 268))
if x * x == n + 100 and y * y == n + 268:
print(n)
列印結果:
21261
1581
程式分析
首先,假設有乙個x是符合條件的完全平方數,即:x * x = x + 100(自己乘以自己=自己+100,當然程式不能這麼寫),並且x * x = x + 268
x = int(math.sqrt(n + 100))先驗證的是等號右邊的,即:x + 100和x + 268
開平方後,還需要驗證自己相乘是否滿足等號右邊的要求,即: if x * x == n + 100 and y * y == n + 268
其他回答,其實這個更符合我的思路:
import math
for i in range(10000):
if math.sqrt(i+100)%1 == 0 and math.sqrt(i+268)%1 == 0: #%1 == 0可以判斷開根號的數否整數
print(i)
每日一練3
1.過載overload是乙個類中多型性的一種表現 2.過載要求同名方法的引數列表不同 引數型別,引數個數甚至是引數順序 3.過載的時候,返回值型別可以相同也可以不相同。無法以返回型別作為過載函式的區分標準 1.發生在父類與子類之間 2.方法名,引數列表,返回型別 除過子類中方法的返回型別是父類中返...
python每日一練
人生苦短,我用python 2018.6.5 有個目錄,裡面是你自己寫過的程式,統計一下你寫過多少行 包括空行和注釋,但是要分別列出來 coding utf 8 import re import glob defcodecolletion path filelist glob.glob path p...
Python每日一練
人生苦短,我用python 2018.6.13 最近事情有點多,有幾天沒寫了,正好最近需要統計一下各組排名,也就拿python代替手工了 各組給出其他組的排名,統計每個組最終的得分,第一名為0.5,第二名0.4,以此類推。coding utf 8 groups 3,2,5,4,6 1,3,5,6,4...