当前位置:   article > 正文

python求[m,n]之间的素数和_python 使用函数求素数和

python 使用函数求素数和

思路:从2开始遍历数字,使用input函数输入求和范围,外循环求和,内循环判断是否为素数,由于是求m,n之间,还需要一个if语句判断是否满足范围

判断素数的思路:将遍历到的数除以之前找到的素数,用%判断是否等于0。因此还需要一个列表用于存放找到的素数。下面是代码

  1. sum = 0
  2. m,n = map(int,input().split())
  3. if m == 1: #1不是素数
  4. m = 2
  5. prime = []
  6. for x in range(2,n+1):
  7. isprime = True
  8. for k in prime:
  9. if x%k == 0:
  10. isprime = False
  11. break
  12. if isprime:
  13. if x >= m:
  14. sum += x
  15. prime.append(x)
  16. print(sum)

这里使用了一个布尔变量isprime = True 作用是标记此时的数为素数,其实可以更改为更好理解的形式(后面会修改)第一次内循环为空列表,不会执行,随着循环的进行,列表元素开始增多,进行素数判断,如果x此时为素数isprime不会改变。这里第二个if语句其实省略了if isprime == True。

下面是修改后的代码,删除了布尔变量,使用了python中特有的for else,更好理解这个代码

  1. sum = 0
  2. m,n = map(int,input().split())
  3. if m == 1:
  4. m = 2
  5. prime = []
  6. for x in range(2,n+1):
  7. for k in prime:
  8. if x%k == 0:
  9. isprime = False
  10. break
  11. else:
  12. if x >= m:
  13. sum += x
  14. prime.append(x)
  15. print(sum)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/329247?site
推荐阅读
相关标签
  

闽ICP备14008679号