簡體   English   中英

理解數字的代碼在Python上是素數還是正常

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

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