用户:
Mr.Python查看:4 回复:4 评论:4 创建时间:2020-03-08T12:59:05
【作品展示】

【作品介绍】
快速查找所有质数。
【作品源代码】
def 查找质数(范围最小值, 范围最大值):
if (范围最小值 < 3):
little = 3
else:
little = 范围最小值
质数 = [2]
for number in range(3, (范围最大值 + 1), 2):
YN = True
for i in 质数:
if (number % i == 0):
if (not YN):
continue
else:
YN = False
if YN:
质数.append(number)
print(((number / 范围最大值) * 100), '%')
if (little > 3):
del 质数[0]
for i in range(范围最小值, 1, (-1)):
if (i in 质数):
del 质数[质数.index(i)]
return 质数
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn我在本机Python上实际运行了一下,发现几个问题:
1、我输入 print(查找质数(7, 97)) ,结果7没出来,97有出来,范围最小值到底包不包含?
2、我输入 print(查找质数(3, 97)) ,结果2、3都出来,这是不是前后不一致?你只要边值仔细调一下就OK了
3、第17行(发现编程喵坛的代码展示框要改进,都没有显示行号)“print(((number / 范围最大值) * 100), '%')”这个是什么鬼?如果是展示进度,建议int或round一下,避免1.0999999999999999 % 这种格式出现,让人眼花。此外,在这个地方展示进度,可能出现的问题是:展示得很频繁,这个占用不少时间。展示的不均匀,前面多,后面少。
4、最后让我受不了的是,第11-14行,这个神操作!直接 YN=False break不行吗?
5、另一个优化建议是当i*i>number时,也可以停止检查是否质数了。
可以看一下我以前的贴子:https://shequ.codemao.cn/community/230273
还等什么?快关注我, 炼金树枝吧!
点赞0
评论