|
|
A090423
|
|
Primes that can be written in binary representation as concatenation of other primes.
|
|
12
|
|
|
11, 23, 29, 31, 43, 47, 59, 61, 71, 79, 83, 109, 113, 127, 151, 157, 167, 173, 179, 181, 191, 223, 229, 233, 239, 241, 251, 271, 283, 317, 337, 347, 349, 353, 359, 367, 373, 379, 383, 431, 433, 439, 457, 463, 467, 479, 487, 491, 499, 503, 509, 541, 563, 599, 607
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
|
|
LINKS
|
|
|
EXAMPLE
|
337 is 101010001 in binary,
10 is 2,
10 is 2,
10001 is 17, partition is 10_10_10001, so 337 is in the sequence.
|
|
PROG
|
(Python)
# Primes = [2, ..., 607]
from sympy import sieve
primes = list(sieve.primerange(1, 608))
def tryPartioning(binString): # First digit is not 0
l = len(binString)
for t in range(2, l-1):
substr1 = binString[:t]
if (int('0b'+substr1, 2) in primes) or (t>=4 and tryPartioning(substr1)):
substr2 = binString[t:]
if substr2[0]!='0':
if (int('0b'+substr2, 2) in primes) or (l-t>=4 and tryPartioning(substr2)):
return 1
return 0
for p in primes:
if tryPartioning(bin(p)[2:]):
print(p, end=', ')
(Python)
from sympy import isprime, primerange
def ok(p):
b = bin(p)[2:]
for i in range(2, len(b)-1):
if isprime(int(b[:i], 2)) and b[i] != '0':
if isprime(int(b[i:], 2)) or ok(int(b[i:], 2)): return True
return False
def aupto(lim): return [p for p in primerange(2, lim+1) if ok(p)]
(Haskell)
a090423 n = a090423_list !! (n-1)
a090423_list = filter ((> 1 ) . a090418 . fromInteger) a000040_list
(PARI) is_A090423(n)={isprime(n)&&for(i=2, #binary(n)-2, bittest(n, i-1)&&isprime(n%2^i)&&is_A090421(n>>i)&&return(1))} \\ M. F. Hasler, Apr 21 2015
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|