用python求给定范围内的素数,请大家帮我看看代码有什么问题

手机编辑的,对齐有点问题。建议拉到后面看图。

def primenumber(i, j):
s = 2
t = 0
prime=[]
for r in range(i,j):
if r==1:
continue
if r==2:
prime.append(r)
else:
for s in range(2,r):
if (r%s!=0):
t+=1
s+=1
if t==(r-2):
prime.append(r)
return prime

def main():
print("请输入第一个数:")
first=int(input())
print("请输入最后一个数:")
last = int(input())
print("[%d,%d)范围内的素数有:"%(first,last),primenumber(first,last))

if name=="main":
main()

img

img

按你的思路来调整下 s,t这块调整如下


def primenumber(i, j):
    prime = []
    for r in range(i, j + 1):
        if r == 1:
            continue
        elif r == 2:
            prime.append(2)
        else:
            for s in range(2, r):
                # 能被整除就不是素数,结束循环继续判断下一个数
                if r % s == 0:
                    break
                # 循环结束了还没被整除,就是素数了
                if s == r - 1:
                    prime.append(r)
    return prime


def main():
    first = int(input("请输入第一个数:"))
    last = int(input("请输入最后一个数:"))
    print("[%d,%d]范围内的素数有:" % (first, last), primenumber(first, last))


if __name__ == "__main__":
    main()

img