login
Positive integers whose binary representation is a palindrome and has a prime number of 0's.
2

%I #19 Sep 17 2021 17:26:03

%S 9,17,21,45,51,65,85,93,99,107,189,219,231,257,297,325,365,381,387,

%T 427,443,455,471,765,891,951,975,1105,1161,1241,1285,1365,1421,1501,

%U 1533,1539,1619,1675,1755,1787,1799,1879,1911,1935,1967,3069,3579,3831,3951

%N Positive integers whose binary representation is a palindrome and has a prime number of 0's.

%C Each term of this sequence is in both sequence A006995 and sequence A144754.

%H Indranil Ghosh, <a href="/A144752/b144752.txt">Table of n, a(n) for n = 1..11167</a>

%e 17 in binary is 10001. This binary representation is a palindrome, it contains three 0's, and three is a prime. So 17 is a term.

%o (Python)

%o from sympy import isprime

%o def ok(n): b = bin(n)[2:]; return b == b[::-1] and isprime(b.count('0'))

%o print(list(filter(ok, range(4000)))) # _Michael S. Branicky_, Sep 17 2021

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

%o from sympy import isprime

%o from itertools import product

%o def ok2(bin_str): return isprime(bin_str.count("0"))

%o def bin_pals(maxdigits):

%o yield from "01"

%o digits, midrange = 2, [[""], ["0", "1"]]

%o for digits in range(2, maxdigits+1):

%o for p in product("01", repeat=digits//2-1):

%o left = "1"+"".join(p)

%o for middle in midrange[digits%2]:

%o yield left + middle + left[::-1]

%o def auptopow2(e): return [int(b, 2) for b in filter(ok2, bin_pals(e))]

%o print(auptopow2(12)) # _Michael S. Branicky_, Sep 17 2021

%Y Cf. A144753, A006995, A144754

%K base,nonn

%O 1,1

%A _Leroy Quet_, Sep 20 2008

%E Extended by _Ray Chandler_, Nov 04 2008

%E Name edited by _Michael S. Branicky_, Sep 17 2021