Avoid infinite loop for finding large prime values #2126
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the
val
passed tofindPrimeGreaterThan
is greater than the largest value (not the sentinel) in theNC_primes
, then the routine will fall into an infinite loop. Modified to call an external routine that brute forces the finding of a prime larger than the value in this case.The brute force routine uses the primes in
NC_primes
table in the prime test, so this will fail if given avalue > 180503 * 180503
. TheisPrime
function could be rewritten to avoid this, but assuming this won't happen for the forseeable future. If it does happen,isPrime
will return that any value larger than this is prime...