繁体   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