在你的代码中,有几个语法错误和逻辑错误:
x*l
应该是x**0.5
,表示x的平方根,这是判断素数的常用方法。s=list(s)
是多余的,因为map
函数返回的是一个可迭代对象,已经是列表了。print(su)
放在循环外面,表示输出所有的素数。修改后的代码如下:
def sushu(x):
if x < 2:
return False
for i in range(2, int(x**0.5)+1):
if x % i == 0:
return False
return True
n = int(input()) #输入一个整数n,表示接下来要输入的数字个数。
s = map(int, input().split()) #接着输入n个数字,用空格隔开。
su = []
for x in s:
if sushu(x):
su.append(x)
print(su)
执行结果如下: