问题

软件 >> C++
Questions in category: C++ (C++).

[编程]判断一个整数是否为素数

Posted by haifeng on 2015-01-12 22:59:18 last update 2019-03-04 09:39:17 | Answers (0) | 收藏


方法一:

使用传统的方法判断, 即对于 $N > 3$, 用 $i=1,3,\ldots, [\sqrt{N}]$ 去试除 $N$, 如果都无法除尽, 则 $N$ 是素数.

不过当 $N$ 很大时, 这个算法效率很低下.

 

方法二:

首先将前 1000 个或 1,000,000 个素数读入内存, 采用二叉查找树的结构.

利用查找方式判定一个整数(在此范围内)是否是素数.

[评论] 这个需要预先得到这 1,000,000 个素数. 即使不考虑这部分所耗的时间, 后续使用二叉查找树, 查找 $N$ 是否在其中也需要花费 $\log_2 N$ 的时间(指时间复杂度).