OFFSET
1,4
COMMENTS
From Yifan Xie, Jan 07 2025: (Start)
The following identities can be proved by induction (k, t are nonnegative integers):
a(n) = 0 iff n = 2 or n = 9*2^k - 2.
a(n) = 1 iff n = 1, 3, 6, 8, 9 or n = 21*2^k - 2.
If n > 71, a(n) = 2 iff n = m*3*2^k - 2, where m is in the set {26, 30, 32, 34, 40, 49}.
If n > 85, a(n) = 3 iff n = 108*2^k - 2, 108*2^k - 3, 108*2^k - 4, 108*2^k - 5, 123*2^k - 2, 126*2^k - 2, 132*2^k - 2, 150*2^k - 2, 174*2^k - 2, 210*2^k - 2, (108*2^t - 3)*2^k - 2.
If n > 60, a(n) = 4 iff n = 114*2^k - 2. (End)
LINKS
Yifan Xie, Table of n, a(n) for n = 1..10000
FORMULA
EXAMPLE
There are 3 ways to reach 11: (1*2+2)*2+3=11, (1+3)*2+3=11 and (1+2)*3+2=11.
PROG
(C++) #include <iostream>
using namespace std; int f(int x, bool y) { if(x<0) return 0; if(x==1) return 1; if(y==0) return f(x-2, 1)+f(x-3, 1); if(y==1) { if(x%6==0) return f(x/2, 0)+f(x/3, 0); if(x%6==1||x%6==5) return 0; if(x%6==2||x%6==4) return f(x/2, 0); if(x%6==3) return f(x/3, 0); } } int n; int main() { cin>>n; cout<<1<<", "; for(int i=2; i<n; i++) cout<<f(i, 0)<<", "; cout<<f(n, 0); return 0; }
CROSSREFS
KEYWORD
nonn,easy
AUTHOR
Yifan Xie, Nov 01 2022
STATUS
approved
