一尘不染

有没有一种简单的算法可以确定X是否为素数?

algorithm

我一直在尝试通过Euler项目进行工作,并且注意到一些问题要求您确定质数作为它的一部分。

  1. 我知道我可以将x除以X的2、3、4、5,…,平方根,如果到达平方根,则可以(安全地)假定数字为质数。不幸的是,这种解决方案似乎很笨拙。

  2. 我已经研究了更好的算法来确定数字是否为质数,但是很快就会感到困惑。

是否有一种简单的算法可以确定X是否为质数,而不会使纯粹的凡人程序员感到困惑?

非常感谢!


阅读 227

收藏
2020-07-28

共1个答案

一尘不染

第一个算法非常好,并且在Euler项目上使用了很多。如果您知道所需的最大数量,也可以研究Eratosthenes的筛子。

如果维护素数列表,则还可以优化第一个算法以仅用素数除,直到数字的平方根。

有了这两个算法(划分和筛分),您应该能够解决问题。

编辑 :固定名称,如注释中所述

2020-07-28