login
The smallest number in base n such that two digits (and no fewer) need to be changed to get a prime.
2

%I #43 Mar 24 2024 10:48:42

%S 8,24,24,90,90,119,200,117,200,319,528,1131,1134,525,1328,1343,1332,

%T 1330,1340,2478,7260,1334,5352,4300,5954,4833,13188,8468,10800,15686,

%U 11744,19338,19618,22575,19620,15688,28234,19617,25480,31406,19614,40291,25476,31410

%N The smallest number in base n such that two digits (and no fewer) need to be changed to get a prime.

%C Any digit, including the most significant, can be changed to 0.

%C If one defines the Prime-Erdős-Number PEN(n, k) in base n of a number k to be the minimum number of the base-n digits of k that must be changed to get a prime, then a(n) is the smallest number k such that PEN(n, k) = 2.

%C Adding preceding 0's to be changed does not appear to change any of the entries given below.

%H Michael S. Branicky, <a href="/A370531/b370531.txt">Table of n, a(n) for n = 2..143</a>

%e a(2) = 8 = 1000_2 can be changed to the prime 1011_2 (11 in decimal) by changing the last two digits. Although 4 = 100_2 can be changed to the prime 111_2 by changing two digits, it can also be changed to the prime 101_2 by only one base-2 digit, so 4 is not a(2).

%e a(3) = 24 = 220_3 can be changed to 212_3 = 23. 24 is not prime and no single base-3 digit change works.

%e a(4) = 24 = 120_4 can be changed to 113_4 = 23.

%e a(5) = 90 = 330_5 -> 324_5 = 89.

%e a(6) = 90 = 230_6 -> 225_6 = 89.

%e a(7) = 119 = 230_7 -> 221_7 = 113.

%e a(8) = 200 = 310_8 -> 307_8 = 199.

%e a(9) = 117 = 140_9 -> 135_9 = 113.

%e Often, there are alternative ways to change two digits to get alternative primes, but for each a(n), there is not any way to get a prime by changing 0 or 1 digits in base n.

%o (Python)

%o from sympy import isprime

%o from sympy.ntheory import digits

%o from itertools import combinations, count, product

%o def fromdigits(d, b): return sum(di*b**i for i, di in enumerate(d[::-1]))

%o def PEN(base, k):

%o if isprime(k): return 0

%o d = digits(k, base)[1:]

%o for j in range(1, len(d)+1):

%o for c in combinations(range(len(d)), j):

%o for p in product(*[[i for i in range(base) if i!=d[c[m]]] for m in range(j)]):

%o dd = d[:]

%o for i in range(j): dd[c[i]] = p[i]

%o if isprime(fromdigits(dd, base)): return j

%o def a(n): return next(k for k in count(n) if PEN(n, k) == 2)

%o print([a(n) for n in range(2, 32)]) # _Michael S. Branicky_, Feb 21 2024

%Y Cf. A133219, A186995, A322614.

%K nonn

%O 2,1

%A _Don N. Page_, Feb 21 2024

%E a(11) and beyond from _Michael S. Branicky_, Feb 21 2024