对Lis的各个元素执行除法

2024-04-27 04:05:57 发布

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

我想写一个程序来寻找素数。你知道吗

prime = [2]
for k in range(3,100)
    if k%prime != 0
        prime.append(k)
print(prime)

当我运行程序时,我得到一个错误:

TypeError: unsupported operand type(s) for %: 'int' and 'list'

我想,当我试图除以列表时,会出现错误,但我真的不知道该怎么办。任何帮助都将不胜感激。你知道吗


Tags: in程序foriftype错误rangeprime
1条回答
网友
1楼 · 发布于 2024-04-27 04:05:57

您必须遍历整个素数列表,并确保列表中所有项的模不为零

prime = [2]
for k in range(3,100):
    if all(k % p != 0 for p in prime):
        prime.append(k)

优化(一旦找到单个素数因子,就不要检查其他素数):

prime = [2]
for k in range(3,100):
    for p in prime:
        if k % p == 0:
            break
    else:
        prime.append(k)

相关问题 更多 >