OFFSET
1,1
COMMENTS
Appears to give all k such that 8 is the highest power of 2 dividing A005148(k). - Benoit Cloitre, Jun 22 2002
Seen as a triangle read by rows, T(n,k) = 2^(k-1) + 2^n, 1 <= k <= n, the sum of the n-th row equals A087323(n). - Reinhard Zumkeller, Jun 24 2009
Numbers whose base-2 sum of digits is 2. - Tom Edgar, Aug 31 2013
All odd terms are A000051. - Robert G. Wilson v, Jan 03 2014
A239708 holds the subsequence of terms m such that m - 1 is prime. - Hieronymus Fischer, Apr 20 2014
LINKS
T. D. Noe and Hieronymus Fischer, Table of n, a(n) for n = 1..10000 [terms 1..1000 from T. D. Noe]
Michael Beeler, R. William Gosper, and Richard Schroeppel, HAKMEM, MIT Artificial Intelligence Laboratory report AIM-239, February 1972. Item 175 page 81 by Gosper for iterating. Also HTML transcription.
Tilman Piesk, Square array in reverse binary
FORMULA
a(n) = 2^trinv(n-1) + 2^((n-1)-((trinv(n-1)*(trinv(n-1)-1))/2)), i.e., 2^A002024(n)+2^A002262(n-1). - Antti Karttunen
a(n) = A059268(n-1) + A140513(n-1). A000120(a(n)) = 2. Complement of A161989. A151774(a(n)) = 1. - Reinhard Zumkeller, Jun 24 2009
A073267(a(n)) = 2. - Reinhard Zumkeller, Mar 07 2012
Start with A000051. If n is in sequence, then so is 2n. - Ralf Stephan, Aug 16 2013
a(n) = A057168(a(n-1)) for n>1 and a(1) = 3. - Marc LeBrun, Jan 01 2014
From Hieronymus Fischer, Apr 20 2014: (Start)
Formulas for a general parameter b according to a(n) = b^i + b^j, i>j>=0; b = 2 for this sequence.
a(n) = b^i + b^j, where i = floor((sqrt(8n - 1) + 1)/2), j = n - 1 - i*(i - 1)/2 [for a Smalltalk implementation see Prog section, method distinctPowersOf: b (2 versions)].
a(A000217(n)) = (b + 1)*b^(n-1) = b^n + b^(n-1).
a(A000217(n)+1) = 1 + b^(n+1).
a(n + 1 + floor((sqrt(8n - 1) + 1)/2)) = b*a(n).
a(n + 1 + floor(log_b(a(n)))) = b*a(n).
a(n + 1) = b^2/(b+1) * a(n) + 1, if n is a triangular number (s. A000217).
a(n + 1) = b*a(n) + (1-b)* b^floor((sqrt(8n - 1) + 1)/2), if n is not a triangular number.
The next term can also be calculated without using the index n. Let m be a term and i = floor(log_b(m)), then:
a(n + 1) = b*m + (1-b)* b^i, if floor(log_b(m/(b+1))) + 1 < i,
a(n + 1) = b^2/(b+1) * m + 1, if floor(log_b(m/(b+1))) + 1 = i.
Partial sum:
Sum_{k=1..n} a(k) = (((b-1)*(j+1)+i-1)*b^(i-j) + b)*b^j - i)/(b-1), where i = floor((sqrt(8n - 1) + 1)/2), j = n - 1 - i*(i - 1)/2.
Inverse:
For each sequence term m, the index n such that a(n) = m is determined by n := i*(i-1)/2 + j + 1, where i := floor(log_b(m)), j := floor(log_b(m - b^floor(log_b(m)))) [for a Smalltalk implementation see Prog section, method invertedDistinctPowersOf: b].
Inequalities:
a(n) <= (b+1)/b * b^floor(sqrt(2n)+1/2), equality holds for triangular numbers.
a(n) > b^floor(sqrt(2n)+1/2).
a(n) < b^sqrt(2n)*sqrt(b).
a(n) > b^sqrt(2n)/sqrt(b).
Asymptotic behavior:
lim sup a(n)/b^sqrt(2n) = sqrt(b).
lim inf a(n)/b^sqrt(2n) = 1/sqrt(b).
lim sup a(n)/b^(floor(sqrt(2n))) = b.
lim inf a(n)/b^(floor(sqrt(2n))) = 1.
lim sup a(n)/b^(floor(sqrt(2n)+1/2)) = (b+1)/b.
lim inf a(n)/b^(floor(sqrt(2n)+1/2)) = 1.
(End)
Sum_{n>=1} 1/a(n) = A179951. - Amiram Eldar, Oct 06 2020
EXAMPLE
From Hieronymus Fischer, Apr 27 2014: (Start)
a(1) = 3, since 3 = 2^1 + 2^0.
a(5) = 10, since 10 = 2^3 + 2^1.
a(10^2) = 16640
a(10^3) = 35184372089344
a(10^4) = 2788273714550169769618891533295908724670464 = 2.788273714550...*10^42
a(10^5) = 3.6341936214780344527466190...*10^134
a(10^6) = 4.5332938264998904048012398...*10^425
a(10^7) = 1.6074616084721302346802429...*10^1346
a(10^8) = 1.4662184497310967196301632...*10^4257
a(10^9) = 2.3037539289782230932863807...*10^13462
a(10^10) = 9.1836811272250798973464436...*10^42571
(End)
MAPLE
a:= n-> (i-> 2^i+2^(n-1-i*(i-1)/2))(floor((sqrt(8*n-1)+1)/2)):
seq(a(n), n=1..100); # Alois P. Heinz, Feb 01 2022
MATHEMATICA
Select[ Range[ 1056 ], (Count[ IntegerDigits[ #, 2 ], 1 ]==2)& ]
Union[Total/@Subsets[2^Range[0, 10], {2}]] (* Harvey P. Dale, Mar 04 2012 *)
PROG
(PARI) for(m=1, 9, for(n=0, m-1, print1(2^m+2^n", "))) \\ Charles R Greathouse IV, Sep 09 2011
(PARI) is(n)=hammingweight(n)==2 \\ Charles R Greathouse IV, Mar 03 2014
(PARI) for(n=0, 10^5, if(hammingweight(n)==2, print1(n, ", "))); \\ Joerg Arndt, Mar 04 2014
(PARI) a(n)= my(t=sqrtint(n*8)\/2); 2^t + 2^(n-1-t*(t-1)/2); \\ Ruud H.G. van Tol, Nov 30 2024
(Haskell)
a018900 n = a018900_list !! (n-1)
a018900_list = elemIndices 2 a073267_list -- Reinhard Zumkeller, Mar 07 2012
(C)
unsigned hakmem175(unsigned x) {
unsigned s, o, r;
s = x & -x; r = x + s;
o = x ^ r; o = (o >> 2) / s;
return r | o;
}
unsigned A018900(int n) {
if (n == 1) return 3;
return hakmem175(A018900(n - 1));
} // Peter Luschny, Jan 01 2014
(Smalltalk)
distinctPowersOf: b
"Version 1: Answers the n-th number of the form b^i + b^j, i>j>=0, where n is the receiver.
b > 1 (b = 2, for this sequence).
Usage: n distinctPowersOf: 2
Answer: a(n)"
| n i j |
n := self.
i := (8*n - 1) sqrtTruncated + 1 // 2.
j := n - (i*(i - 1)/2) - 1.
^(b raisedToInteger: i) + (b raisedToInteger: j)
[by Hieronymus Fischer, Apr 20 2014]
------------
(Smalltalk)
distinctPowersOf: b
"Version 2: Answers an array which holds the first n numbers of the form b^i + b^j, i>j>=0, where n is the receiver. b > 1 (b = 2, for this sequence).
Usage: n distinctPowersOf: 2
Answer: #(3 5 6 9 10 12 ...) [first n terms]"
| k p q terms |
terms := OrderedCollection new.
k := 0.
p := b.
q := 1.
[k < self] whileTrue:
[[q < p and: [k < self]] whileTrue:
[k := k + 1.
terms add: p + q.
q := b * q].
p := b * p.
q := 1].
^terms as Array
[by Hieronymus Fischer, Apr 20 2014]
------------
(Smalltalk)
floorDistinctPowersOf: b
"Answers an array which holds all the numbers b^i + b^j < n, i>j>=0, where n is the receiver.
b > 1 (b = 2, for this sequence).
Usage: n floorDistinctPowersOf: 2
Answer: #(3 5 6 9 10 12 ...) [all terms < n]"
| a n p q terms |
terms := OrderedCollection new.
n := self.
p := b.
q := 1.
a := p + q.
[a < n] whileTrue:
[[q < p and: [a < n]] whileTrue:
[terms add: a.
q := b * q.
a := p + q].
p := b * p.
q := 1.
a := p + q].
^terms as Array
[by Hieronymus Fischer, Apr 20 2014]
------------
(Smalltalk)
invertedDistinctPowersOf: b
"Given a number m which is a distinct power of b, this method answers the index n such that there are uniquely defined i>j>=0 for which b^i + b^j = m, where m is the receiver; b > 1 (b = 2, for this sequence).
Usage: m invertedDistinctPowersOf: 2
Answer: n such that a(n) = m, or, if no such n exists, min (k | a(k) >= m)"
| n i j k m |
m := self.
i := m integerFloorLog: b.
j := m - (b raisedToInteger: i) integerFloorLog: b.
n := i * (i - 1) / 2 + 1 + j.
^n
[by Hieronymus Fischer, Apr 20 2014]
(Python)
print([n for n in range(1, 3001) if bin(n)[2:].count("1")==2]) # Indranil Ghosh, Jun 03 2017
(Python)
A018900_list = [2**a+2**b for a in range(1, 10) for b in range(a)] # Chai Wah Wu, Jan 24 2021
(Python)
from math import isqrt, comb
def A018900(n): return (1<<(m:=isqrt(n<<3)+1>>1))+(1<<(n-1-comb(m, 2))) # Chai Wah Wu, Oct 30 2024
CROSSREFS
Cf. A000079, A014311, A014312, A014313, A023688, A023689, A023690, A023691 (Hamming weight = 1, 3, 4, ..., 9).
AUTHOR
Jonn Dalton (jdalton(AT)vnet.ibm.com), Dec 11 1996
EXTENSIONS
Edited by M. F. Hasler, Dec 23 2016
STATUS
approved