a = [ ]
for i in range(int(input())):
a.append(int(input()))
print(max(filter(lambda x: x%i != 0 for i in range(2,x), a)))
这是一个旨在打印数字数组中最大素数的代码。但shell不断返回语法错误。这有什么问题?
答案 0 :(得分:0)
您的lambda表达式返回一个生成器表达式。您希望它测试True
次迭代的条件是all
。您需要all
。
此外(更多数学问题),无需循环到x
,只需使用平方根(包括)来降低复杂性。
我的建议:
print(max(filter(lambda x: all(x%i != 0 for i in range(2,int(x**0.5)+1)), a)))