This set of C++ (https://en.wikipedia.org/wiki/C%2B%2B) programs must be run with GMP (https://en.wikipedia.org/wiki/GNU_Multiple_Precision_Arithmetic_Library, https://gmplib.org/)
This set of programs uses many number theoretic (https://en.wikipedia.org/wiki/Number_theory, https://www.rieselprime.de/ziki/Number_theory, https://mathworld.wolfram.com/NumberTheory.html) functions in GMP library (see https://gmplib.org/manual/Number-Theoretic-Functions), and we use the GMP function mpz_probab_prime_p (see https://faculty.lynchburg.edu/~nicely/misc/mpzspsp.html) to test the probable primality of the numbers, this function is combination of the Baillie–PSW probable primality test (https://en.wikipedia.org/wiki/Baillie%E2%80%93PSW_primality_test, https://mathworld.wolfram.com/Baillie-PSWPrimalityTest.html), the Miller–Rabin probable primality test (https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test, https://primes.utm.edu/glossary/xpage/MillersTest.html, https://www.rieselprime.de/ziki/Miller-Rabin_pseudoprimality_test, https://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html, http://www.numericana.com/answer/pseudo.htm#rabin, http://www.javascripter.net/math/primes/millerrabinprimalitytest.htm, http://ntheory.org/data/psps.txt) of first 50 prime bases (see https://oeis.org/A014233 and https://oeis.org/A141768 and https://oeis.org/A001262 and https://oeis.org/A074773) (we use reps = 50, thus the first 50 prime bases), and trial division (https://en.wikipedia.org/wiki/Trial_division, https://primes.utm.edu/glossary/xpage/TrialDivision.html, https://www.rieselprime.de/ziki/Trial_factoring, https://mathworld.wolfram.com/TrialDivision.html, http://www.numericana.com/answer/factoring.htm#trial) to about 109, thus all numbers in the data are Baillie–PSW probable primes (i.e. both strong probable primes to base 2 (see https://oeis.org/A001262) and strong Lucas pseudoprimes (https://en.wikipedia.org/wiki/Lucas_pseudoprime#Strong_Lucas_pseudoprimes, https://mathworld.wolfram.com/StrongLucasPseudoprime.html, http://ntheory.org/data/slpsps-baillie.txt) with parameters (P, Q) defined by Selfridge's Method A (see https://oeis.org/A217255)), i.e. either primes or Baillie–PSW pseudoprimes, and no known composites which pass the Baillie–PSW probable prime test, and no composites < 264 pass the Baillie–PSW probable prime test (see http://ntheory.org/pseudoprimes.html and https://faculty.lynchburg.edu/~nicely/misc/bpsw.html), thus if a number in the data is in fact composite, it will be a pseudoprime to the Baillie–PSW probable prime test, which currently no single example is known!
The program "searchpp.cc" is searching the smallest (probable) prime in non-simple families (for the examples of non-simple families, see https://stdkmd.net/nrr/prime/primecount3.htm and https://stdkmd.net/nrr/prime/primecount3.txt (only base 10 families)), non-simple families usually have small primes if they cannot be ruled out as only containing composites by covering congruence, see the README file in the main page.
(the section below uses the notation in http://www.wiskundemeisjes.nl/wp-content/uploads/2007/02/minimal.pdf (cached copy at https://github.com/xayahrainie4793/pdf-files-cached-copy/blob/main/pdf_12.pdf), i.e. "X ◁ Y" means "X is a subsequence of Y")
e.g. for the non-simple family {7}{4}1 in base b = 8, we can separate it to these families:
- Family {7}1, its smallest prime is 7121 (see http://factordb.com/index.php?query=8%5E%28n%2B1%29-7&use=n&n=1&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {7}41, its smallest prime is 77941 (not minimal prime, since 7121 ◁ 77941) (see http://factordb.com/index.php?query=8%5E%28n%2B2%29-31&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {7}441, its smallest prime is 784441 (not minimal prime, since 7121 ◁ 784441) (see http://factordb.com/index.php?query=8%5E%28n%2B3%29-223&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {7}4441, its smallest prime is 72334441 (not minimal prime, since 7121 ◁ 72334441) (see http://factordb.com/index.php?query=8%5E%28n%2B4%29-1759&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {7}44441, its smallest prime is 75644441 (not minimal prime, since 7121 ◁ 75644441) (see http://factordb.com/index.php?query=8%5E%28n%2B5%29-14047&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {7}444441, it has no primes since all numbers in this family are divisible by 7 (see http://factordb.com/index.php?query=8%5E%28n%2B6%29-112351&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {7}4444441, its smallest prime is 77774444441 (see http://factordb.com/index.php?query=8%5E%28n%2B7%29-898783&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {4}1, its smallest prime is 481 (see http://factordb.com/index.php?query=%284*8%5E%28n%2B1%29-25%29%2F7&use=n&n=1&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family 7{4}1, its smallest prime is 7471 (see http://factordb.com/index.php?query=%2853*8%5E%28n%2B1%29-25%29%2F7&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family 77{4}1, it has no primes since all numbers in this family are divisible by 5 (see http://factordb.com/index.php?query=%28445*8%5E%28n%2B1%29-25%29%2F7&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family 777{4}1, its smallest prime is 7774111 (not minimal prime, since 481 ◁ 7774111) (see http://factordb.com/index.php?query=%283581*8%5E%28n%2B1%29-25%29%2F7&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family 7777{4}1, its smallest prime is 77774444441 (see http://factordb.com/index.php?query=%2828669*8%5E%28n%2B1%29-25%29%2F7&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
and thus we found that the smallest prime in the non-simple family {7}{4}1 in base 8 is 77774444441
For another example, for the non-simple family {8}{3}5 in base b = 9, we can separate it to these families:
- Family {8}5, it has no primes since all numbers in this family can be factored as difference of squares (note: since we only count the primes > b, thus the prime 5 is not counted) (see http://factordb.com/index.php?query=9%5E%28n%2B1%29-4&use=n&n=1&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {8}35, it has no primes since all numbers in this family are divisible by 2 (in fact, always divisible by 8) (see http://factordb.com/index.php?query=9%5E%28n%2B2%29-49&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {8}335, its smallest prime is 819335 (see http://factordb.com/index.php?query=9%5E%28n%2B3%29-454&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {8}3335, it has no primes since all numbers in this family are divisible by 2 (see http://factordb.com/index.php?query=9%5E%28n%2B4%29-4099&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {8}33335, its smallest prime is 8933335 (see http://factordb.com/index.php?query=9%5E%28n%2B5%29-36904&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {8}333335, it has no primes since all numbers in this family are divisible by 2 (in fact, always divisible by 4) (see http://factordb.com/index.php?query=9%5E%28n%2B6%29-332149&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {8}3333335, its smallest prime is 893333335 (not minimal prime, since 8933335 ◁ 893333335) (see http://factordb.com/index.php?query=9%5E%28n%2B7%29-2989354&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {8}33333335, it has no primes since all numbers in this family are divisible by 2 (see http://factordb.com/index.php?query=9%5E%28n%2B8%29-26904199&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {8}333333335, its smallest prime is 8333333335 (see http://factordb.com/index.php?query=9%5E%28n%2B9%29-242137804&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family {3}5, it has no primes since all numbers in this family are divisible by either 2 or 5 (note: since we only count the primes > b, thus the prime 5 is not counted) (see http://factordb.com/index.php?query=%283*9%5E%28n%2B1%29%2B13%29%2F8&use=n&n=1&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
- Family 8{3}5, its smallest prime is 8333333335 (see http://factordb.com/index.php?query=%2867*9%5E%28n%2B1%29%2B13%29%2F8&use=n&n=0&VP=on&VC=on&EV=on&OD=on&PR=on&FF=on&PRP=on&CF=on&U=on&C=on&perpage=200&format=1&sent=Show)
and thus we found that the smallest prime in the non-simple family {8}{3}5 in base 9 is 8333333335
The program "searchpm.cc" is searching the smallest (probable) prime in simple families up to length 1000.
The program "searchp1.cc" is searching the smallest (probable) prime in simple families extensively, starting with length 1000.
The program "searchLLR.cc" is a sieving (https://www.rieselprime.de/ziki/Sieving, https://www.rieselprime.de/ziki/Sieving_a_range_of_sequences, https://mathworld.wolfram.com/Sieve.html) program like SRSIEVE (https://www.bc-team.org/app.php/dlext/?cat=3, http://web.archive.org/web/20160922072340/https://sites.google.com/site/geoffreywalterreynolds/programs/, http://www.rieselprime.de/dl/CRUS_pack.zip, https://primes.utm.edu/bios/page.php?id=905, https://www.rieselprime.de/ziki/Srsieve, https://github.com/xayahrainie4793/prime-programs-cached-copy/tree/main/srsieve_1.1.4, https://github.com/xayahrainie4793/prime-programs-cached-copy/tree/main/sr1sieve_1.4.6, https://github.com/xayahrainie4793/prime-programs-cached-copy/tree/main/sr2sieve_2.0.0, https://github.com/xayahrainie4793/prime-programs-cached-copy/tree/main/srbsieve, https://github.com/xayahrainie4793/prime-programs-cached-copy/blob/main/mtsieve_2.4.1/srsieve2.exe, https://github.com/xayahrainie4793/prime-programs-cached-copy/blob/main/mtsieve_2.4.1/srsieve2cl.exe) but only sieved to the prime 130337 (while SRSIEVE usually sieve to 109 or more) and not remove the numbers with algebraic factors (see https://mersenneforum.org/showpost.php?p=452132&postcount=66 and https://mersenneforum.org/showthread.php?t=21916 and https://github.com/xayahrainie4793/prime-programs-cached-copy/blob/main/srsieve_1.1.4/algebraic.c (note: for the sequence (a×bn+c)/gcd(a+c,b−1), the case of "Mersenne number" in https://github.com/xayahrainie4793/prime-programs-cached-copy/blob/main/srsieve_1.1.4/algebraic.c is the case which a is rational power of b, c = −1 and the case which a is rational power of b, c = 1, gcd(a+c,b−1) ≥ 3, and the case of "GFN" in https://github.com/xayahrainie4793/prime-programs-cached-copy/blob/main/srsieve_1.1.4/algebraic.c is the case which a is rational power of b, c = 1, gcd(a+c,b−1) is either 1 or 2)), and the program "searchLLR.cc" prints the LLR (http://jpenne.free.fr/index2.html, https://primes.utm.edu/bios/page.php?id=431, https://www.rieselprime.de/ziki/LLR, https://github.com/xayahrainie4793/prime-programs-cached-copy/tree/main/llr403win64, https://github.com/xayahrainie4793/prime-programs-cached-copy/tree/main/llr403linux64) input file and thus the LLR program must be used after the program "searchLLR.cc".
There is also a Pari/GP (https://pari.math.u-bordeaux.fr/) program code to compute the first few minimal primes (say < 232) in base b (this program looks at all primes one by one, to test whether a prime is a minimal prime or not, and has time complexity (https://en.wikipedia.org/wiki/Time_complexity) O(n) when compute the minimal primes ≤ n (where O is the big O notation (https://en.wikipedia.org/wiki/Big_O_notation, https://primes.utm.edu/glossary/xpage/BigOh.html, https://mathworld.wolfram.com/Big-ONotation.html)), thus this program would need a time longer than the age of the universe (https://en.wikipedia.org/wiki/Age_of_the_universe) to test to the largest minimal prime for base b = 10 (i.e. 5000000000000000000000000000027), even if we can test 106 primes per second (https://en.wikipedia.org/wiki/Second)), hence to do this is impractically, not to mention base b = 24, whether the set of the C++ programs in this page has time complexity (https://en.wikipedia.org/wiki/Time_complexity) O(log(n)3) (where log is the natural logarithm (https://en.wikipedia.org/wiki/Natural_logarithm, https://primes.utm.edu/glossary/xpage/Log.html, https://mathworld.wolfram.com/NaturalLogarithm.html)) when compute the minimal primes ≤ n, thus it has a polynomial time (https://en.wikipedia.org/wiki/Time_complexity#Polynomial_time, https://mathworld.wolfram.com/PolynomialTime.html)):
a(n,k,b)=v=[];for(r=1,length(digits(n,b)),if(r+length(digits(k,2))-length(digits(n,b))>0 && digits(k,2)[r+length(digits(k,2))-length(digits(n,b))]==1,v=concat(v,digits(n,b)[r])));fromdigits(v,b)
g(n)=if(n<10,n+48,n+55)
f(n,b)=for(k=1,length(digits(n,b)),print1(Strchr(g(digits(n,b)[k]))))
is(n,b)=for(k=1,2^length(digits(n,b))-2,if(ispseudoprime(a(n,k,b)) && a(n,k,b)>=b+1,return(0)));1
c(b)=forprime(p=b+1,2^32,if(is(p,b),f(p,b);print1(", ")))