|
|
A075560
|
|
a(1) = 1, a(n) is the smallest number greater than the previous term that cannot be obtained as the sum of products of any group of earlier terms.
|
|
0
|
|
|
1, 2, 4, 10, 22, 50, 106, 230, 480, 1054, 2656, 6782, 17254
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
COMMENTS
|
|
|
LINKS
|
|
|
EXAMPLE
|
a(5) = 22, as using 1, 2, 4 and 10 the following numbers can be generated: 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 24, 25, 40, 41, 42, 43, 80 and 81. E.g., 19 = 10 + 2*4 + 1.
|
|
PROG
|
(PARI) canMake(n, v) = local(l, newV, m, c, count, mm, x); if (n < 0, return(0)); if (n == 0, return(1)); l = length(v); if (l == 0, return(0)); newV = vector(l - 1, i, v[i]); if (canMake(n, newV), return(1)); m = v[l]; c = l - 1; if (canMake(n - m, newV), return(1)); while (c && v[c]*m > n, c--); for (i = 1, 2^c - 1, count = 0; mm = m; x = i; for (j = 1, c, if (x%2, mm *= v[j], count++; newV[count] = v[j]); x \= 2); for (j = c + 1, l - 1, newV[j - c + count] = v[j]); if (canMake (n - mm, vector(l - 1 - c + count, q, newV[q])), return(1))); 0; v = [2]; n = 4; while (1, if (canMake(n, v), n += 2, l = length(v); newV = vector(l + 1); for (i = 1, l, newV[i] = v[i]); newV[l + 1] = n; v = newV; print(n); n = 2*n + 2)); \\ David Wasserman, Jan 20 2005
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,hard,more
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|