login
Number of terms required when n is expressed as a greedy sum of terms of A129912 (digital sum of n when written in greedy A129912-base).
4

%I #18 Oct 19 2019 21:26:31

%S 0,1,1,2,2,3,1,2,2,3,3,4,1,2,2,3,3,4,2,3,3,4,4,5,2,3,3,4,4,5,1,2,2,3,

%T 3,4,2,3,3,4,4,5,2,3,3,4,4,5,3,4,4,5,5,6,3,4,4,5,5,6,1,2,2,3,3,4,2,3,

%U 3,4,4,5,2,3,3,4,4,5,3,4,4,5,5,6,3,4,4,5,5,6,2,3,3,4,4,5,3,4,4,5,5,6,3,4,4,5

%N Number of terms required when n is expressed as a greedy sum of terms of A129912 (digital sum of n when written in greedy A129912-base).

%H Antti Karttunen, <a href="/A328481/b328481.txt">Table of n, a(n) for n = 0..30030</a>

%H <a href="/index/Pri#primorial_numbers">Index entries for sequences related to primorial numbers</a>

%F a(0) = 0; and for n > 0, a(n) = 1 + a(A328480(n)).

%F a(A129912(n)) = a(A002110(n)) = 1.

%F For all n, a(n) >= A328482(n).

%e Terms of A129912 (numbers that are products of distinct primorial numbers) begin as: 1, 2, 6, 12, 30, 60, 180, 210, 360, 420, 1260, ...

%e Number 5 is expressed as 5 = 2 + 2 + 1 when always choosing the largest term which is <= {what is remaining of the original number}. Thus a(5) = 3.

%e Number 21 is expressed as 21 = 12 + 6 + 2 + 1, thus a(21) = 4.

%e Number 720 is expressed as 720 = 420 + 210 + 60 + 30, thus a(720) = 4. Note that 720 = 2*360, so in this case the greedy algorithm does not produce an optimal result.

%o (PARI)

%o isA129912(n) = { my(o=valuation(n, 2), t); if(o<1||n<2, return(n==1)); n>>=o; forprime(p=3, , t=valuation(n, p); n/=p^t; if(t>o || t<o-1, return(0)); if(t==0, return(n==1)); o=t); }; \\ From A129912

%o prepare_A129912_upto(n) = { my(xs=List([]), k=0); while(k<n, k++; if(isA129912(k), listput(xs,k))); List(Vecrev(xs)); };

%o number_of_terms_in_greedy_sum(n,terms) = { my(c=0); while(n,if(terms[1] > n, listpop(terms,1), c += (n\terms[1]); n %= terms[1])); (c); };

%o number_of_terms_in_greedy_sum_v1(n,terms) = { my(c=0); while(n,if(terms[1] > n, listpop(terms,1), n -= terms[1]; c++)); (c); }; \\ (Simpler variant)

%o A328481(n) = number_of_terms_in_greedy_sum(n,prepare_A129912_upto(n));

%Y Cf. A002110, A129912, A328480, A328482, A328483.

%Y Cf. also A276150.

%K nonn

%O 0,4

%A _Antti Karttunen_, Oct 19 2019