From 0d3b110f107fb9f09b4b96f8f480b46d7068cd9e Mon Sep 17 00:00:00 2001 From: J08nY Date: Wed, 28 Mar 2018 20:24:14 +0200 Subject: More tests and better handling for the invalid range option. --- src/invalid/invalid.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/invalid') diff --git a/src/invalid/invalid.c b/src/invalid/invalid.c index 9590564..70ecda4 100644 --- a/src/invalid/invalid.c +++ b/src/invalid/invalid.c @@ -75,17 +75,19 @@ static size_t invalid_primes(GEN order, pari_ulong **primes) { if (cfg->invalid_primes) { char *end = NULL; - last = (pari_ulong)strtol(cfg->invalid_primes, &end, 10); + last = (pari_ulong)strtol(cfg->invalid_primes, &end, 10) - 1; if (end && *end) { end++; upper = (pari_ulong)strtol(end, NULL, 10); + } else { + upper = unextprime(last + 1); } } size_t size = 10; *primes = try_calloc(size * sizeof(pari_ulong)); - while (cmpii(bound, product) >= 0 && ((upper == 0) || last < upper)) { + while (((upper == 0) && cmpii(bound, product) >= 0) || (last <= upper)) { product = mulis(product, last); pari_ulong next = unextprime(last + 1); if ((upper != 0) && next > upper) { -- cgit v1.3.1