在Python中,理解数字的代码是prime或normal

在Python中,理解数字的代码是prime或normal,python,Python,我是Python新手,我编写了这段代码来识别一个数是否为素数。 我编写了一个可以在JavaScript和VisualBasic中使用的代码,但在Python中不起作用,它的错误是:TypeError:float是必需的。 我的代码: 导入数学 a=原始输入(“输入一个数字:”) k=0 i=1 s=math.sqrt(a) 而我只需将用户输入转换为int。 a=int(原始输入(“输入数字”) 错误的是,您试图查找类型为string(text)的值的平方根。只需将用户输入转换为int。 a=in

我是Python新手,我编写了这段代码来识别一个数是否为素数。 我编写了一个可以在JavaScript和VisualBasic中使用的代码,但在Python中不起作用,它的错误是:TypeError:float是必需的。 我的代码:

导入数学
a=原始输入(“输入一个数字:”)
k=0
i=1
s=math.sqrt(a)

而我只需将用户输入转换为
int
a=int(原始输入(“输入数字”)


错误的是,您试图查找类型为
string
(text)的值的平方根。

只需将用户输入转换为
int
a=int(原始输入(“输入数字”)


错误的是,您试图找到类型为
string
(text)的值的平方根。

代码中还有更多问题:
循环只到给定数字的平方根,但您打印了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"
导入数学
a=int(原始输入(“输入数字”))
k=0
i=2
s=math.sqrt(a)
#印刷品
而我1:
打印“素数”
其他:
打印“正常数值”

您的代码中还有更多问题:
虽然
循环仅为给定数字的平方根,但您打印的是k==2的
素数。在这个代码中只有一个除数,它是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"
导入数学
a=int(原始输入(“输入数字”))
k=0
i=2
s=math.sqrt(a)
#印刷品
而我1:
打印“素数”
其他:
打印“正常数值”

首先检查python的版本,如果您使用的是python3,则只需
a=输入(“输入数字”)

原始输入适用于python2

首先检查python的版本,如果使用python3,则只需
a=输入(“输入数字”)
python2的原始输入工作