summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2022-05-14 09:13:49 +0200
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2022-05-14 09:13:49 +0200
commita6a3cfd04ca7753869e7bc1d097d39724d6e786f (patch)
treea3b729cc4e37c6f5ad88fbd49fb068c1eca043a4
parentc7e6892b6d1f080d4d1604082d866c2597d2a195 (diff)
downloadgmp-a6a3cfd04ca7753869e7bc1d097d39724d6e786f.tar.gz
tests/mpz/t-pprime_p.c (isprime): Simplify.
-rw-r--r--tests/mpz/t-pprime_p.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/tests/mpz/t-pprime_p.c b/tests/mpz/t-pprime_p.c
index 7b8f56aa2..65d1a9648 100644
--- a/tests/mpz/t-pprime_p.c
+++ b/tests/mpz/t-pprime_p.c
@@ -31,26 +31,20 @@ the GNU MP Library test suite. If not, see https://www.gnu.org/licenses/. */
composite. */
-/* return 1 if prime, 0 if composite */
+/* return 2 if prime, 0 if composite */
int
-isprime (long n)
+isprime (unsigned long n)
{
- long i;
-
- n = ABS(n);
-
- if (n < 2)
- return 0;
if (n < 4)
- return 1;
+ return (n & 2);
if ((n & 1) == 0)
return 0;
- for (i = 3; i*i <= n; i+=2)
+ for (unsigned long i = 3; i*i <= n; i+=2)
if ((n % i) == 0)
return 0;
- return 1;
+ return 2;
}
void
@@ -60,11 +54,8 @@ check_one (mpz_srcptr n, int want)
got = mpz_probab_prime_p (n, 25);
- /* "definitely prime" is fine if we only wanted "probably prime" */
- if (got == 2 && want == 1)
- want = 2;
-
- if (got != want)
+ /* "definitely prime" (2) is fine if we only wanted "probably prime" (1) */
+ if ((got != want) && (got != want * 2))
{
printf ("mpz_probab_prime_p\n");
mpz_trace (" n ", n);
@@ -94,7 +85,7 @@ check_small (void)
for (i = 0; i < 300; i++)
{
mpz_set_si (n, i);
- check_pn (n, 2 * isprime (i));
+ check_pn (n, isprime (i));
}
mpz_clear (n);