login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

a(n) is the least k>0 such that n*k contains the n-th prime as a substring.
1

%I #19 Jun 07 2024 14:09:23

%S 2,15,5,18,22,22,25,24,26,29,21,31,32,31,98,96,27,34,88,355,13,36,21,

%T 79,39,39,189,383,376,371,41,41,416,41,426,42,425,43,43,433,419,431,

%U 237,44,266,433,45,465,464,458,83,46,423,417,468,47,472,468,47,469,103,473,488,486,202,481,348,496,63,499

%N a(n) is the least k>0 such that n*k contains the n-th prime as a substring.

%C From _Robert Israel_, Jun 06 2024: (Start)

%C If n is divisible by 2*10^k or 5*10^k, a(n) >= prime(n)*10^(k+1)/n.

%C Let n = 2^b * 5^c * k with k coprime to 10, and suppose prime(n) has d digits. If b <= c, then f(n) < 10^d * 2^(c-b). If b > c, then f(n) < 10^d * 5^(b-c).

%C a(10^k) = prime(10^k).

%C a(2*10^k) = 5 * prime(2*10^k).

%C a(5*10^k) = 2 * prime(5*10^k). (End)

%H Robert Israel, <a href="/A371895/b371895.txt">Table of n, a(n) for n = 1..10000</a>

%e a(8) = 24 because 24 is the least positive integer such that 24*8 = 192 contains the prime(8) = 19.

%p f:= proc(n) local t,k;

%p t:= convert(ithprime(n),string);

%p for k from 1 do

%p if StringTools:-Search(t, convert(n*k,string)) > 0 then return k fi

%p od

%p end proc:

%p map(f, [$1..100]); # _Robert Israel_, Jun 05 2024

%t a[n_]:=(k=1;While[!StringContainsQ[ToString[n*k],ToString@Prime@n],k++];k); Array[a,70]

%o (Python)

%o from sympy import prime

%o from itertools import count

%o def a(n): t=str(prime(n)); return next(k for k in count(1) if t in str(n*k))

%o print([a(n) for n in range(1, 71)]) # _Michael S. Branicky_, Apr 11 2024

%o (Python) # faster for initial segment of sequence

%o from sympy import nextprime

%o from itertools import count, islice

%o def agen(): # generator of terms

%o pn = 2

%o for n in count(1):

%o t = str(pn)

%o yield next(k for k in count(1) if t in str(n*k))

%o pn = nextprime(pn)

%o print(list(islice(agen(), 70))) # _Michael S. Branicky_, Apr 11 2024

%o (PARI) a(n) = my(k=1, s=Str(prime(n))); while(#strsplit(Str(k*n), s) < 2, k++); k; \\ _Michel Marcus_, Apr 11 2024

%Y Cf. A000040, A086064.

%K nonn,base,look

%O 1,1

%A _Giorgos Kalogeropoulos_, Apr 11 2024