WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Delicate primes computed using PARI/GP (Tiny Core friendly)  (Read 38 times)

Offline geev03

  • Wiki Author
  • Newbie
  • *****
  • Posts: 49
I’ve successfully computed delicate primes using PARI/GP, and wanted to share this here since it runs well even on minimal systems like Tiny Core Linux.

A delicate prime is a prime number such that changing any single decimal digit to any other digit always produces a composite number. Even one digit mutation destroying primality makes these primes extremely rare and interesting.

PARI/GP approach

The idea is simple and efficient:

Check if a number is prime

For each digit position:

Replace the digit with all other digits 0–9

Skip the original digit

Test primality of the modified number

If any modification is prime → reject

If all modifications are composite → delicate prime
Code: [Select]

isdelicate(p)=
{
  if (!isprime(p), return(0));
  d = digits(p);
  for (i=1, #d,
    for (x=0,9,
      if (x != d[i],
        v = fromdigits(subst(d, i, x));
        if (v > 1 && isprime(v), return(0))
      )
    )
  );
  return(1);
}

delicates(limit)=
{
  forprime(p=2, limit,
    if (isdelicate(p),
      print(p)
    )
  )
}

Usage example:

delicates(10^7)
Notes

Runs comfortably on low-memory systems

No external libraries needed beyond PARI/GP

Easy to adapt for:

Larger ranges

Other bases

“Strong” delicate prime definitions

This is another nice example of how PARI/GP shines on minimal Linux setups like Tiny Core when exploring number theory.

To get the result in a file, gp -q <wp.gp > result.txt &
« Last Edit: Today at 05:24:04 AM by geev03 »