Skip to main content
 首页 » 编程设计

python之在 python 中打印质数

2025年05月04日22lautakyan007

我正在尝试在 python 中打印 3-50 范围内的质数。这是代码:

for i in range(3,51): 
flag=0 
    for j in range(3,i): 
        if(i%j==0): 
            flag=1 
    if(flag==0): 
        print(i) 

代码运行正常,除了它还在打印 4.请指出代码逻辑是否有问题(忽略效率问题)。

请您参考如下方法:

print(2) 
for i in range(3,51): 
    flag=0 
    for j in range(2,int(i/2)): 
        if(i%j==0): 
            flag=1 
    if(flag==0): 
    print(i) 

当 i = 4 时,范围将为 range(2,2) 即 0。它不会进入 if(i%j == 0): block 。因此,当 i = 4 时,您的标志将始终为 0。

解决它的一种方法是在 i 是否为 4 时添加一个检查。

if(flag==0 and i != 4): 

编辑:正如其他人评论的那样,将范围增加 1 比检查值是否为 4 更好。

for j in range(2,int(i/2)+1)