There is BigInteger.nextProbablePrime() , which may come up if you work with large integers. Otherwise, you can write your own quite easily. Here is the one I prepared earlier:
static long nextPrime(long previous) { if (previous < 2L) { return 2L; } if (previous == 2L) { return 3L; } long next = 0L; int increment = 0; switch ((int)(previous % 6L)) { case 0: next = previous + 1L; increment = 4; break; case 1: next = previous + 4L; increment = 2; break; case 2: next = previous + 3L; increment = 2; break; case 3: next = previous + 2L; increment = 2; break; case 4: next = previous + 1L; increment = 2; break; case 5: next = previous + 2L; increment = 4; break; } while (!isPrime(next)) { next += increment; increment = 6 - increment; // 2, 4 alternating } return next; }
This uses wheel 2, 4 to skip multiple of 2 and 3. You will need a simple testing method:
boolean isPrime(long toTest) { ... }
which returns true if its parameter is simple, false otherwise.
source share