請注意,這不是我的家庭作業!我只是想在同一時間理解Python(和數學,可悲)。我知道這個程序的最終目標是獲得1到20範圍內的素數列表,但是,一旦它達到「for x in range ...」行,我就會迷失方向,而教程不會沒有詳細解釋它。Python - 素數練習
可否請你用簡單的英語一步一步解釋該行for x in range (2,n),
是什麼n
行for x in range (2,n)
二)明確具體
一)什麼是X?底部是否是「n」?
c)n, x, n // x
是什麼意思。請澄清//
感謝如果你能幫助
def isprime(n):
if n == 1:
print("1 is special")
return False
for x in range(2, n):
if n % x == 0:
print("{} equals {} x {}".format(n, x, n // x))
return False
else:
print(n, "is a prime number")
return True
for n in range(1, 20):
isprime(n)
值得指出的是,這是一個非常低效的算法。更好地將範圍行更改爲'範圍內的x(3,int(math.sqrt(n))+ 1,2)'。您需要'導入數學'並在2上添加另一個特例。這大大減少了必須完成的檢查次數。檢查過去的sqrt + 1是沒有意義的,因爲在那裏你只能找到逆矩陣(例如5×2而不是2×5)。特殊外殼2將檢查次數減半。例如檢查611953,減少檢查數量780倍。 – 2011-04-06 13:20:49