123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include "stdafx.h"
- #include "defs.h"
- void
- eval_isprime(void)
- {
- push(cadr(p1));
- eval();
- p1 = pop();
- if (isnonnegativeinteger(p1) && mprime(p1->u.q.a))
- push_integer(1);
- else
- push_integer(0);
- }
- #if SELFTEST
- static char *s[] = {
- // 0 and 1 are not prime numbers
- "isprime(0)",
- "0",
- "isprime(1)",
- "0",
- "isprime(13)",
- "1",
- "isprime(14)",
- "0",
- // from the Prime Curios web page
- "isprime(9007199254740991)",
- "0",
- // The largest prime that JavaScript supports
- "isprime(2^53 - 111)",
- "1",
- // misc. primes
- "isprime(2^50-71)",
- "1",
- "isprime(2^40-87)",
- "1",
- };
- void
- test_isprime(void)
- {
- test(__FILE__, s, sizeof s / sizeof (char *));
- }
- #endif
|