您现在的位置是:首页 > 技术教程 正文

python-求1~100的素数

admin 阅读: 2024-03-25
后台-插件-广告管理-内容页头部广告(手机)

首先,什么是素数

素数又叫质数,质数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数。

例如:3只能被1和3整除,除此之外不能再被其他数字整除,那么3就是质数。

那么也就可以得出

设x为1~100的随机一个数

设y为2到随机出的数

条件当x%y==0为true

可得代码:

  1. for x in range(1,101):
  2. for y in range(2,x):
  3. if x%y == 0:
  4. break
  5. else:
  6. print(x)

结果:

乍一看没什么大问题,但是,结果有1,那么1算不算素质(质数)呢?

那么1显然不是我们要的,所以这个代码有小问题,因为1确实符合能被1和自身整除,除此之外不能再被其他数字整除这个条件 

 所以,我们得抛开1,直接从2开始

并且这样显示的结果也不美观,所以我可以使用list接收append的形式

优化后代码:

  1. #方法一:
  2. num=[]
  3. for x in range(2,101):
  4. for y in range(2,x):
  5. if x%y == 0:
  6. break
  7. else:
  8. num.append(x)
  9. print(num)
  10. #方法二:
  11. num = []
  12. x = 2
  13. for x in range(2, 101):
  14. y = 2
  15. for y in range(2, x):
  16. if x%y == 0:
  17. break
  18. else:
  19. num.append(x)
  20. print(num)
  21. #方法三
  22. num=[]
  23. import math
  24. for x in range(2,101):
  25. flag = True
  26. for y in range(2,int(math.sqrt(x))+1):
  27. if(x%y)==0:
  28. flag = False
  29. break
  30. if flag:
  31. num.append(x)
  32. print(num)

结果:

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索