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

2024-09-28 16:19:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,写了这个代码来识别一个数是否是素数。 我写了一个可以用JavaScript和visualbasic工作的代码,但不能用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"

怎么了?你知道吗


Tags: 代码importinputrawif错误mathjavascript
3条回答

代码中还有更多的问题:while循环只能达到给定数字的平方根,但打印prime num表示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"

首先检查python的版本,如果您使用python3,那么只需要 a=input("enter number") python2的原始输入工作

只需将用户输入转换为inta = int(raw_input("Enter a number:"))

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

相关问题 更多 >