[英]Why my Python program recognizes the number one as Prime number?
我知道以下代碼不是最佳的,我編寫它們只是為了我自己的培訓。 但我不知道為什么數字一 (1) 被識別為質數。 請幫我!
n=input ('Enter number: ')
def prime ():
global n
try:
n=int (n)
for I in range (2, n):
if n==1 or n%I==0:
print (n,"is not prime ")
break
else:
print (n,"is Prime")
if True:
n=input ('enters number: ')
prime ()
except:
n=input ('Please enter a number not a word: ')
prime ()
prime ()
原因是當 n = 1 時不會評估您的第一個 if 語句,因為范圍 (2,1) 為空。 所以它繼續到 else 語句並打印 1 作為素數。 要解決此問題,您應該將范圍擴大到 (0,n) 並重做 if 語句,如下所示:
n=input ('Enter number: ')
def prime ():
global n
try:
n=int (n)
for I in range (0, n):
if n == 1 or (I > 1 and n%I == 0):
print (n,"is not prime ")
break
else:
print (n,"is Prime")
if True:
n=input ('enters number: ')
prime ()
except:
n=input ('Please enter a number not a word: ')
prime ()
prime ()
#output:
Enter number: 3
3 is Prime
enters number: 2
2 is Prime
enters number: 1
1 is not prime
你也可以這樣做
n=input ('Enter number: ')
def prime ():
global n
try:
n=int (n)
if n == 1:
print('n is not prime')
else:
for I in range (2, n):
if n%I==0:
print (n,"is not prime ")
break
else:
print (n,"is Prime")
except:
n=input ('Please enter a number not a word: ')
prime ()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.