ISPR - Use Java to determine arbitrarily large probable primes

Use a Java to rapidly determine whether an arbitrarily large positive integer is a prime
3.4K Downloads
Updated 21 Sep 2004

No License

Editor's Note: This file was a File Exchange Pick of the Week

ISPR - Rapidly determine whether an
arbitrarily large positive integer
is a probable prime.

USAGE: q = ispr(n)
q = ispn(n,1)

n = positive integer, either as a numeric or string datatype

q = 1 if n is prime, 0 if n is composite

1 = any second input will cause the
function to output a message describing
the result in plain language, including
(if n is probably prime) a statement
about the certainty with which n is
claimed to be prime.

Notes: Probable primes are also known as "industrial strength" primes because
of the exceedlingly high probability --
but not certainty -- of primality. This
function utilizes the Java class
"BigInteger" with its method
"isProbablePrime."

For small integers, you can use numeric
inputs; however, for abitrarily large
integers, you must input the number
as a string in order to avoid an
overflow. Note the overflow error in
the second to last example below.

Examples:

>>ispr(314159,1)
I believe that 314159 is prime, but
there is a 1 in 590295810358705650000
chance that I am mistaken.

>>ispr('338327950288419716939',1)
I believe that 338327950288419716939 is
prime, but there is a 1 in 664613997892457940000000000000000000
chance that I am mistaken.

>>ispr(338327950288419716939,1)
338327950288419680000 is definitely not
prime.

>> for i=1:1000;if ispr(i);fprintf('%i ',i);end;end;fprintf('\n')

Michael Kleder, September 2004

Cite As

Michael Kleder (2024). ISPR - Use Java to determine arbitrarily large probable primes (https://www.mathworks.com/matlabcentral/fileexchange/5888-ispr-use-java-to-determine-arbitrarily-large-probable-primes), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R14
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0.0

Minor bug fix. Now works correctly for primes > 350 digits.