[英]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.