我正在嘗試為“The Sieve Of Eratosthenes”制作一個 python 程式,但我被困在一個地方:
我制作的 c 程式看起來像這樣:
for(i=2;i<=n;i )
{
if(prime[i]==0)
{
for(j=i*i;j<=n;j =i)
{
prime[j]=1;
}
}
}
我將如何for(j=i*i;j<=n;j =i)
在python中撰寫代碼
默認情況下,python將迭代器遞增1
uj5u.com熱心網友回復:
你的代碼可以這樣重寫
for i in range(2,n 1, 1):
if prime[i]==0:
for j in range(i*i, n 1, i):
prime[j]=1
range函式最多取3個值,第一個是起始值,第二個是結束值(不包括),第三個是每次步進的數量。
的完整語意range
可以在這里找到
uj5u.com熱心網友回復:
我認為您可以執行以下操作:
# rest of the code
# .
# .
j = i*i
while j <=n:
# resut of the code
j = i
uj5u.com熱心網友回復:
我有點困惑,因為我不知道 C 的語法是什么,但我假設你想做一些類似的事情
for i in range(n): # run from 0 to the value of n (int)
if prime[i] == 0: # assuming prime is a list
for j in range(i**2): # runs from 0 to the value of i squared
prime[j] = 1
這段代碼應該在語法和實際運行方面起作用(假設您在某處定義了 prime 和 n),但您可能需要對 for 回圈進行一些調整以使其達到預期的效果。請記住,以這種方式構造的 for 回圈將有一個名為 i 的臨時變數,該變數為 0,只要 i 的值小于 n 的值,代碼就會運行,并且每次 i 將自身加一. 如果你想稍微改變一下,你可以使用 range(start, stop, step),其中 start 是 i 的起始值(不是 0),stop 是停止值(n)。step 也是每次代碼回圈時 i 的變數自增的量。
我希望這有幫助。請提出任何問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446702.html
標籤:Python python-3.x 循环 for循环 增量