Update
This commit is contained in:
parent
c3c50a0ad0
commit
46a8374a5b
11 changed files with 55 additions and 11 deletions
2
prime.md
2
prime.md
|
@ -65,6 +65,8 @@ Here are prime numbers under 1000: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 4
|
|||
\__\__\_/\ \ /\ \ /\ \
|
||||
```
|
||||
|
||||
There also exists a term **pseudoprime** -- it stands for a number which is not actually a prime but appears so because it passes some quick primality tests.
|
||||
|
||||
## Algorithms
|
||||
|
||||
**Primality test**: testing whether a number is a prime is quite easy and not computationally difficult (unlike factoring the number). A [naive](naive.md) algorithm is called *trial division* and it tests whether any number from 2 up to the tested number divides the tested number (if so, then the number is not a prime, otherwise it is). This can be optimized by only testing numbers up to the [square root](sqrt.md) (including) of the tested number (if there is a factor greater than the square root, there is also another smaller than it which would already have been tested). A further simple optimization is to to test division by 2, 3 and then only numbers of the form 6q +- 1 (other forms are divisible by either 2 or 3, e.g 6q + 4 is always divisible by 2). Further optimizations exist and for maximum speed a [look up table](lut.md) may be used for smaller primes. A simple [C](c.md) function for primality test may look e.g. like this:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue