%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