a = [int(x) for x in input().split(' ')]
print(a)
for i in a:
if a%i==0:
pass
break
else:
print(i)
我正在尝试在列表'a'中打印素数。 但是我出错了
4 23 21 1
[4, 23, 21, 1]
Traceback (most recent call last):
File "C:/Python35/primenumber.py", line 4, in <module>
if a%i==0:
TypeError: unsupported operand type(s) for %: 'list' and 'int'
答案 0 :(得分:1)
您得到的错误清楚地提到了为什么得到它。
if a%i==0:
TypeError: unsupported operand type(s) for %: 'list' and 'int'
您正在列表'a'和整数'i'上执行'%'操作。除了提供列表“ a”,您还必须提供一个整数。不支持按整数对%进行列表操作。这也是您给出的错误。
答案 1 :(得分:0)
a是一个列表。
a % i
没有任何意义。另外,没有任何程序可以检查代码中的素数。您可以考虑使用sympy.isprime测试素数。
请注意素数只能有两个因素。
import sympy
a = [int(x) for x in input().split(' ')]
print(a)
for i in a:
if sympy.isprime(i):
print(i)
产生
答案 2 :(得分:-1)
查找素数并不容易,但是逻辑可以是这样的:
print("Print your List")
a = [int(x) for x in input().split(' ')]
print(a)
for i in a:
if(i>1):
for s in range(2,i):
if(i%s)==0:
print("Not a Prime Number")
break
else:
print("Prime number")
break