python-求1~100的素数
admin 阅读: 2024-03-25
后台-插件-广告管理-内容页头部广告(手机) |
首先,什么是素数?
素数又叫质数,质数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数。
例如:3只能被1和3整除,除此之外不能再被其他数字整除,那么3就是质数。
那么也就可以得出
设x为1~100的随机一个数
设y为2到随机出的数
条件当x%y==0为true
可得代码:
- for x in range(1,101):
- for y in range(2,x):
- if x%y == 0:
- break
- else:
- print(x)
结果:
乍一看没什么大问题,但是,结果有1,那么1算不算素质(质数)呢?
那么1显然不是我们要的,所以这个代码有小问题,因为1确实符合能被1和自身整除,除此之外不能再被其他数字整除这个条件
所以,我们得抛开1,直接从2开始
并且这样显示的结果也不美观,所以我可以使用list接收append的形式
优化后代码:
- #方法一:
- num=[]
- for x in range(2,101):
- for y in range(2,x):
- if x%y == 0:
- break
- else:
- num.append(x)
- print(num)
- #方法二:
- num = []
- x = 2
- for x in range(2, 101):
- y = 2
- for y in range(2, x):
- if x%y == 0:
- break
- else:
- num.append(x)
- print(num)
- #方法三
- num=[]
- import math
- for x in range(2,101):
- flag = True
- for y in range(2,int(math.sqrt(x))+1):
- if(x%y)==0:
- flag = False
- break
- if flag:
- num.append(x)
- print(num)
结果:
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |