不知道为什么全是输出的空数列

img


输出输入的数里最大的素数。但是不知道为什么每一个输出的数都是空的数列没有添加成功

在你的代码中,有几个语法错误和逻辑错误:

  1. x*l应该是x**0.5,表示x的平方根,这是判断素数的常用方法。
  2. s=list(s)是多余的,因为map函数返回的是一个可迭代对象,已经是列表了。
  3. 应该将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)

执行结果如下:

img