簡體   English   中英

數字1 - 1000的素數測試

[英]Prime number test for numbers 1 - 1000

作為一個家庭作業,我必須寫一個素數測試,這會給出一個“真實”或“虛假”的陳述。 棘手的是,我必須編寫一個csv.-文件,其中包含數字1到1000的“true”和“false”語句。我使用此代碼進行素數測試

def Primzahl(n):
if n < 2:
    return False
if n == 2: 
    return True    
if not n & 1: 
    return False
for x in range(3, int(n**0.5) + 1, 2):
    if n % x == 0:
        return False
return True

for i in range (1,1001):
    Primzahl (i)
    print (i)

我的for-loop只給出數字1,1000而不是真或假的陳述。 我是否必須在for循環中包含if和else? 有人可以幫忙嗎?

問題是print(i) 這將寫出i ,這是你的range調用中的數字。 您還需要打印函數返回的值,例如print(Primzahl(i))

目前您只打印i,而不是方法的返回值。 您沒有使用方法的返回值執行任何操作。 您應該將結果分配給變量並同時打印變量。 (您也可以從print語句中調用該方法。)

for i in range (1,1001):
isPrime = Primzahl(i)
print (i + ": " + isPrime)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM