FACTOID # 83: More than half of Indonesia's primary school teachers are under 30years of age .
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Primality testing

A primality test is an algorithm for determining whether an input number is prime. It is important to note the difference between primality testing and integer factorization — factorization is, as of 2005, a computationally hard problem, whereas primality testing, as shown below, is comparatively easy.

Contents

Naïve methods

The simplest primality test is as follows: Given an input number n, we see if any integer k from 2 to n-1 divides n. If n is divisible by any k then n is composite, otherwise it is prime.


A slightly better method is to see if n is divisible by any integer k from 2 to , inclusive. If n is composite then it can be factored into two values, at least one of which is less than or equal to


A good way to speed up this method (and all the others mentioned below) is to pre-compute and store a list of all primes up to a certain bound, say all primes up to 200; such a list can be computed with the Sieve of Eratosthenes. Then, before testing n for primality with a serious method, one first checks whether n is divisible by any prime from the list.


Probabilistic tests

Most popular primality tests are probabilistic tests. They do not determine with certainty whether a number is prime or not, but are acceptable for practical applications such as cryptography that often critically depend on large prime numbers. The basic idea is as follows:

  1. Randomly pick a number a.
  2. Check some equality involving a and the given number n. If the equality fails to hold true, then n is a composite number, a is known as a witness for the compositeness, and the test stops.
  3. Repeat step 1 until the required certainty is achieved.

After several iterations, if n is not found to be a composite number, then it can be declared probably prime.


These tests are fast but often not perfect. For a given test, there may be some composite numbers that will be declared "probably prime" no matter what witness is chosen. Such numbers are called pseudoprimes for that test.


The simplest probabilistic primality test is the Fermat primality test. It is sometimes used if a rapid screening of numbers is needed, for instance in the key generation phase of the RSA public key cryptographical algorithm. The Miller-Rabin primality test and Solovay-Strassen primality test are more sophisticated variants which detect all composites; they are often the methods of choice.


Fast deterministic tests

A deterministic primality test is the cyclotomy test; its runtime can be proven to be O(nclog(log(n))), where n is the number of digits of N and c is a constant independent of n. This is slower than polynomial time.


The elliptic curve primality test can be proven to run in O(n6), but only if some still unproven (but widely assumed to be true) statements of analytic number theory are used. In practice, this test is slower than the cyclotomy test for numbers with up to 10,000 digits or so.


The implementation of these two methods is rather difficult, and their error probabilities in practice may therefore be even higher than those of the probabilistic methods mentioned above.


If the generalized Riemann hypothesis is assumed, the Miller-Rabin test can be turned into a deterministic version with runtime Õ(n4). In practice, this algorithm is slower than the other two for sizes of numbers that can be dealt with at all.


In 2002, Manindra Agrawal, Nitin Saxena and Neeraj Kayal described a new deterministic primality test which runs in Õ(n12), and this bound can be rigorously proven. In addition, given a certain unproven, but widely believed to be true, conjecture, it runs in Õ(n6). As such, this provided the first deterministic primality test with provably polynomial run-time. In practice, this algorithm is slower than the other methods.


Number-theoretic methods

Certain number-theoretic methods exist, such as the Lucas-Lehmer primality test for testing whether a number is prime.


The Lucas-Lehmer test relies on the fact that the if the multiplicative order of some number a modulo n is n-1 for a prime n when a is primitive. If we can show a is primitive for n, we can show n is prime.


External links


  Results from FactBites:
 
Primality test - definition of Primality test in Encyclopedia (727 words)
A primality test is an algorithm for determining whether an input number is prime.
The simplest probabilistic primality test is the Fermat primality test.
The Miller-Rabin primality test and Solovay-Strassen primality test are more sophisticated variants which detect all composites; they are often the methods of choice.
NodeWorks - Encyclopedia: Primality test (1148 words)
It is important to note the difference between primality testing and integer factorization — factorization is, as of 2005, a computationally hard problem, whereas primality testing, as shown below, is comparatively easy.
Since compositeness is an NP-problem, usual randomized primality tests never report a prime number as composite, but it is possible for a composite number to be reported as prime (for a small fraction of potential witnesses).
Having said that, it may be also worthwhile to consider tests which are incorrect on a certain fraction of inputs; such algorithms are called heuristic or approximation algorithms.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.