最近对简单的素性测试感兴趣。我有以下两个函数返回给定输入的所有素数列表。我做的第一个,另一个基于维基百科的propity测试的伪代码。然后我稍微改变了我认为最接近维基百科的东西。
当我计时(以10000作为输入/限制)时,我的时间比另一个长一个数量级。我不太清楚为什么,就我而言,他们做的事情非常类似。我通过一个带有“any”的素数列表进行检查,而wiki检查这些相同的数字,但是使用while循环生成它们。我错过了什么?
filterModel
答案 0 :(得分:0)
any
将遍历整个列表,以查看是否有任何元素被评估为true。 while
循环中断的速度更快,因为它考虑了元素的递增顺序。您可以使用takewhile
中的itertools
进行游戏,并且您应该获得与while循环相似的运行时间。