login
Self-locating numbers within the Copeland-Erdős constant: numbers k such that the string k is at the 0-indexed position k in the decimal digits of the concatenation of the prime numbers as a decimal sequence.
0

%I #38 Jul 17 2021 04:29:23

%S 37,3790,4991,38073,908979,8378611,62110713,87126031,8490820681,

%T 9514920697,24717215429,784191725098,836390891918

%N Self-locating numbers within the Copeland-Erdős constant: numbers k such that the string k is at the 0-indexed position k in the decimal digits of the concatenation of the prime numbers as a decimal sequence.

%C This is inspired by the self-locating digits in Pi (A057680). Similar to A064810, these digits are 0-indexed, whereas in A057680 the sequence is 1-indexed.

%C The first two terms of the 1-indexed sequence are 8031711 and 648967141. - _Giovanni Resta_, Apr 22 2020

%e 37 is a term because the 3 digit of 37 appears in the 37th 0-indexed position of the Copeland-Erdős constant.

%t q=23; p=3; dq=2; dn=dp=1; L={}; n=-1; pP=nP=10; While[++n < 10^6, If[n == nP, nP *= 10; dn++]; While[ q<n, p = NextPrime[p]; If[p > pP, pP *= 10; dp++]; q = q pP + p; dq += dp]; If[n == Floor[ q/10^(dq - dn)], Print@ AppendTo[L, n]]; q = Mod[q, 10^(--dq)]]; L (* _Giovanni Resta_, Apr 21 2020 *)

%o (Python)

%o import sympy

%o from sympy import sieve

%o def digits_at(ss, n):

%o ''' Extracts len(str(n)) digits at position n.'''

%o t = len(str(n))

%o s = ss[n:n+t]

%o if s == '':

%o return -1

%o return int(s)

%o def self_locating(ss, n):

%o return digits_at(ss,n) == n

%o SS = ""

%o for p in sieve.primerange(2, 100000):

%o SS += str(p)

%o for i in range(100000):

%o if self_locating(SS, i):

%o print(i,end=",")

%Y Cf. A006880, A033308, A057680, A064810.

%K nonn,base,more

%O 1,1

%A _Soren Telfer_, Apr 20 2020

%E a(3)-a(13) from _Giovanni Resta_, Apr 22 2020