簡體   English   中英

為范圍內的素數定義 function

[英]Defining function for prime number in a range

可能是一個非常基本的問題,我嘗試定義一個將打印出來的 function:

數字“質數”或“非質數”

下面是出現此錯誤的代碼:TypeError: isprime() missing 1 required positional argument: 'n'

def isitprime(n):
        for i in range(2,n+1):
             for y in range (2,i):
                 if i % y == 0:
                   isPrime = False
             if isPrime:
                  print(i)
                  print('Prime')
             else:
                  print(i)
                  print('Not Prime')

調用 function 時沒有傳遞參數

isitprime(5)

有參數 5

試試這個:

def isitprime(n):
prime = True
for i in range(int(n+1/2)):
    if(i==0 or i==1):
        continue
    elif(n % i==0):
        prime = False
if prime is True:
    print(str(n) + " is prime")
else:
    print(str(n) + " is not prime")
isitprime(7)

沒有必要因聲明變量而感到困惑。 您可以簡單地執行以下操作:這背后的邏輯是,如果該數字可以被除 1 以外的任何數字整除,則該數字將打破循環,否則它將繼續。 當該循環結束時,如果該數字不可整除任何數字,則它是質數。

def isitPrime(n):
   for num in range(2,n+1):
       for i in range(2, num):
          if (num % i) == 0:
             print(num)
             print("not prime")
             break
       else:
          print(num)
          print("prime")


n = int(input())
isitPrime(n)

如果您考慮時間復雜度,那么您可以在(2 to n//2)(2, int(math.sqrt(num)))范圍內迭代第二個循環

暫無
暫無

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

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