当前位置:   article > 正文

【Python】编写一个判断素数的函数,并调用求出1至100之间的所有素数_定义一个判断是否为素数函数,调用函数输出自己学号后两位以内所有素数(前10号

定义一个判断是否为素数函数,调用函数输出自己学号后两位以内所有素数(前10号

目录

一.正确代码

(一)法一

(二)法二

  运行结果 

二.遇到的问题

(一)初版代码

(二)教训


一.正确代码

(一)法一
  1. def su(x):
  2. for i in range(2,x):
  3. if x%i==0:
  4. return False
  5. return True
  6. if __name__=="__main__":
  7. n1=int(input('输入取值范围下限n1: '))
  8. m1=int(input('输入取值范围上限m1: '))
  9. for x in range(n1,m1):
  10. if su(x) == True:
  11. print(x)
(二)法二
  1. def sushu (n,m):
  2. for g in range (n, m+1):
  3. flag = True
  4. for i in range(2,g):
  5. if g%i == 0:
  6. flag =False #使用flag来控制循环的退出条件
  7. if flag == False:
  8. continue
  9. print(g)
  10. if __name__=="__main__":
  11. n1=int(input('输入取值范围下限n1: '))
  12. m1=int(input('输入取值范围上限m1: '))
  13. sushu (nl,ml)

  运行结果 
  1. 输入取值范围下限n1: 1
  2. 输入取值范围上限m1: 100
  3. 1
  4. 2
  5. 3
  6. 5
  7. 7
  8. 11
  9. 13
  10. 17
  11. 19
  12. 23
  13. 29
  14. 31
  15. 37
  16. 41
  17. 43
  18. 47
  19. 53
  20. 59
  21. 61
  22. 67
  23. 71
  24. 73
  25. 79
  26. 83
  27. 89
  28. 97

 

二.遇到的问题

(一)初版代码如下
        由此可见没有掌握好continue的用法,代码运行不出正确结果
  1. def sushu (n,m):
  2. for g in range (n, m+1):
  3. for i in range(2,m):
  4. if g%i == 0:
  5. continue
  6. print(g)
  7. if __name__=="__main__":
  8. nl=int(input('输入取值范围下限n1: '))
  9. ml=int(input('输入取值范围上限m1: '))
  10. sushu (nl,ml)

(二)教训

1. 要将判断素数的步骤单独成一个函数

        函数:使代码效率最大化,减少冗余

2. continue对外层循环不造成影响

        在上面这个错误的代码中,continue只对 " for i in range(2,m): "产生影响,                

        对” for g in range (n, m+1): "不造成影响

3.要学会使用flag


ଘ(੭ˊᵕˋ)੭* ੈ✩

print("感谢大家的支持!")

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

闽ICP备14008679号