[英]a code that understands a number is prime or normal at Python
我是Python的新手,請編寫此代碼來識別數字是否為質數。 我寫了一個可以在JavaScript和Visual Basic中運行的代碼,但是在Python中卻沒有運行,它的錯誤是: TypeError:需要浮點數 。 我的代碼:
import math
a = raw_input("Enter a number:")
k = 0
i = 1
s = math.sqrt(a)
while i <= s:
if a % i == 0:
k += 1
i += 1
if k == 2:
print "prime num"
else:
print "normal num"
怎么了?
只需將用戶輸入轉換為int
。 a = int(raw_input("Enter a number:"))
出問題的是,您試圖查找string
(文本)類型的值的平方根。
您的代碼中還有更多問題: while
循環僅達到給定數字的平方根,但是您打印k == 2的prime num
。 在此代碼中,只有一個除數,即為1。
而且,您可以從i=2
開始,因此質數將有0個因數。 之后,最后一個問題是1不是質數。 因此,代碼如下所示:
import math
a = int(raw_input("Enter a number:"))
k = 0
i = 2
s = math.sqrt(a)
#print(s)
while i <= s:
if a % i == 0:
k += 1
i += 1
#print(k)
if k == 0 and a > 1:
print "prime num"
else:
print "normal num"
首先檢查您的python版本,如果您使用的是python3,則僅使用a=input("enter number")
raw_input適用於python2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.