diff options
| author | J08nY | 2018-03-28 20:24:14 +0200 |
|---|---|---|
| committer | J08nY | 2018-03-28 20:24:14 +0200 |
| commit | 0d3b110f107fb9f09b4b96f8f480b46d7068cd9e (patch) | |
| tree | 39fbe3bb4830f73669d01522769de6c355f3bf04 /src | |
| parent | c303afb5544c31cd81435933d9f3527e0ba3c2a5 (diff) | |
| download | ecgen-0d3b110f107fb9f09b4b96f8f480b46d7068cd9e.tar.gz ecgen-0d3b110f107fb9f09b4b96f8f480b46d7068cd9e.tar.zst ecgen-0d3b110f107fb9f09b4b96f8f480b46d7068cd9e.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/invalid/invalid.c | 6 |
1 files changed, 4 insertions, 2 deletions
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) { |
