Lei Guanghan 2021-07-12 20:29 采纳率: 33.3%
浏览 28
已采纳

这段代码为什么输出的是这样子?

代码

#使用函数求素数和
'''prime§, 其中函数prime当用户传入参数p为素数时返回True,否则返回False.
PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。
保证用户传入的参数1<=m<n。'''
def prime(p):
    for i in range(1,int(p/2+1)):
        if p%i==0:
            return False
        elif p%i!=0:
            return True
p=int(input('请传入参数p'))
print(prime(p))

输出

请传入参数p11
False

进程已结束,退出代码0

  • 写回答

2条回答 默认 最新

  • 碧池阿蒂拉 2021-07-13 05:00
    关注

    你这个代码 除数i从1开始循环,任何整数都能被1整除啊,直接返回False了,改成range(2, int(p/2 + 1))
    另外你这段代码还有其他问题, for循环永远只循环一次,是判断不了质数的,应该把return True提到循环体外面来

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月13日
  • 创建了问题 7月12日