login
Nodes read by depth in a binary tree defined as: Root = 1; an even node N has a left child N + 1 if N + 1 is not a prime, and an odd node N has a left child sqrt(N + 2) if sqrt(N + 2) is a prime; the right child of a node N is 2*N.
0

%I #15 Mar 18 2021 05:46:26

%S 1,2,4,8,9,16,18,32,36,33,64,72,66,65,128,144,132,130,129,256,145,288,

%T 133,264,260,258,512,290,289,576,266,265,528,261,520,259,516,513,1024,

%U 291,580,578,1152,267,532,530,529,1056,522,1040,518,517,1032,1026

%N Nodes read by depth in a binary tree defined as: Root = 1; an even node N has a left child N + 1 if N + 1 is not a prime, and an odd node N has a left child sqrt(N + 2) if sqrt(N + 2) is a prime; the right child of a node N is 2*N.

%C Let d be the depth of a node N in the binary tree and f be the map of A340801. The d-th iteration of map A340801 on N gives 1, or f^d(N) = 1.

%C If Conjectures 1 and 2 made in A340801 hold, the sequence contains all positive integers and each integer appears once in the sequence.

%C The first odd prime does not appear until d reaches 30 and the first five odd primes appearing in the sequence are:

%C n a(n) d

%C ------- ----- --

%C 140735 4099 30

%C 151872 1543 31

%C 1574120 8689 36

%C 1841645 2917 36

%C 2111465 32771 36

%C The first two odd primes less than 100 appear in the binary tree are 17 at d = 4426 and 71 at d = 4421.

%e The binary tree for depths up to 9 is given below.

%e 1

%e \

%e 2

%e \

%e 4

%e \

%e 8

%e / \

%e 9 16

%e \ \

%e 18 32

%e \ / \

%e 36 33 64

%e \ \ / \

%e 72 66 65 128

%e \ \ \ / \

%e 144 132 130 129 256

%e / \ / \ \ \ \

%e 145 288 133 264 260 258 512

%o (Python)

%o from sympy import isprime

%o from math import sqrt

%o def children(N):

%o C = []

%o if N%2 == 0:

%o if isprime(N + 1) == 0: C.append(N+1)

%o else:

%o p1 = sqrt(N + 2.0); p2 = int(p1 + 0.5)

%o if p2**2 == N + 2 and isprime(p2) == 1: C.append(p2)

%o C.append(2*N)

%o return C

%o L_last = [1]; print(L_last)

%o for d in range(1, 18):

%o L_1 = []

%o for i in range(0, len(L_last)):

%o C_i = children(L_last[i])

%o for j in range(0, len(C_i)): L_1.append(C_i[j])

%o print(L_1); L_last = L_1

%Y Cf. A340801, A006577, A340008, A339991, A340419.

%K nonn

%O 1,2

%A _Ya-Ping Lu_, Feb 18 2021