m0_62660799 2021-10-06 22:31 采纳率: 100%
浏览 76
已结题

用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

  • 写回答

1条回答 默认 最新

  • 微笑的菜鸟 2021-10-06 23:57
    关注

    按你的思路来调整下 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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月15日
  • 已采纳回答 10月7日
  • 修改了问题 10月6日
  • 修改了问题 10月6日
  • 展开全部

悬赏问题

  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大