OFFSET
2,1
COMMENTS
LINKS
Robert Israel, Table of n, a(n) for n = 2..1000
EXAMPLE
For n = 8, a(8) = 113 because 113 is prime, 113 = 161_8 = 135_9 has digit sums 8 in base 8 and 9 in base 9, and no smaller prime works.
MAPLE
f:= proc(n) local k, v, x;
for k from 1 do
v:= convert(convert(k, base, n), `+`);
if v <= n then
x:= k*n + n-v;
if convert(convert(x, base, n+1), `+`) = n+1 and isprime(x) then return x fi
fi
od;
end proc:
map(f, [$2 .. 100]);
MATHEMATICA
a[n_]:=Module[{k=1}, While[DigitSum[Prime[k], n]!=n || DigitSum[Prime[k], n+1]!=n+1, k++]; Prime[k]]; Array[a, 54, 2] (* Stefano Spezia, Jan 01 2025 *)
PROG
(PARI) a(n) = my(p=2); while ((sumdigits(p, n) != n) || (sumdigits(p, n+1) != n+1), p=nextprime(p+1)); p; \\ Michel Marcus, Jan 02 2025
(Python)
from sympy import isprime
from sympy.ntheory import digits
def nextsod(n, base):
c, b, w = 0, base, 0
while True:
d = n%b
if d+1 < b and c:
return (n+1)*b**w + ((c-1)%(b-1)+1)*b**((c-1)//(b-1))-1
c += d; n //= b; w += 1
def A226636gen(sod=3, base=3): # generator of terms for any sod, base
an = (sod%(base-1)+1)*base**(sod//(base-1))-1
while True: yield an; an = nextsod(an, base)
def a(n):
for k in A226636gen(sod=n, base=n):
if sum(digits(k, n+1)[1:]) == n+1 and isprime(k):
return k
print([a(n) for n in range(2, 56)]) # Michael S. Branicky, Jan 04 2025
CROSSREFS
KEYWORD
AUTHOR
Robert Israel, Jan 01 2025
STATUS
approved
