login
Primes p such that if q is the next prime, A004086(p*q) = A004086(p)*A004086(q).
1

%I #56 Jan 05 2022 17:35:42

%S 2,7,11,97,101,1021,1201,2003,3001,10103,10111,20011,20021,21001,

%T 101111,102001,102101,112103,112111,120103,201011,202001,1000003,

%U 1000211,1010003,1010201,1011001,1020011,1100101,1100311,1111013,1111021,1112003,1201001,2011201,2020001,2100001,2100011,10000103

%N Primes p such that if q is the next prime, A004086(p*q) = A004086(p)*A004086(q).

%H Robert Israel, <a href="/A349709/b349709.txt">Table of n, a(n) for n = 1..169</a>

%e a(6) = 1021 is a term because it is prime, the next prime is 1031, and the reverse of 1021*1031 = 1052651 is 1562501 = 1301*1201.

%p revdigs:= proc(n) local L,i,m;

%p L:= convert(n,base,10);

%p m:= nops(L);

%p add(L[i]*10^(m-i),i=1..m)

%p end proc:

%p R:= NULL: count:= 0:

%p q:= 2: qr:= 2:

%p while count < 50 do

%p p:= q; pr:= qr;

%p q:= nextprime(q); qr:= revdigs(q);

%p if pr*qr = revdigs(p*q) then

%p count:= count+1; R:= R, p;

%p fi

%p od:

%p R;

%t seqQ[p_] := PrimeQ[p] && Module[{r = IntegerReverse, q = NextPrime[p]}, r[p*q] == r[p] * r[q]]; Select[Range[2.2*10^6], seqQ] (* _Amiram Eldar_, Jan 05 2022 *)

%o (PARI) R(n) = fromdigits(Vecrev(digits(n))); \\ A004086

%o isok(p) = if (isprime(p), my(q=nextprime(p+1)); R(p*q) == R(p)*R(q)); \\ _Michel Marcus_, Jan 05 2022

%o (Python)

%o from itertools import islice

%o from sympy import isprime, nextprime

%o def R(n): return int(str(n)[::-1])

%o def agen(): # generator of terms

%o p, pr = 2, 2

%o while True:

%o q = nextprime(p)

%o qr = R(q)

%o if R(p*q) == pr * qr:

%o yield p

%o p, pr = q, qr

%o print(list(islice(agen(), 38))) # _Michael S. Branicky_, Jan 05 2022

%Y Cf. A004086.

%K nonn,base

%O 1,1

%A _J. M. Bergot_ and _Robert Israel_, Jan 05 2022