login
Number of partitions of n into perfect powers with each part > 1.
12

%I #19 Jan 12 2025 15:37:27

%S 0,0,0,1,0,0,0,2,1,0,0,2,1,0,0,4,2,1,0,4,2,1,0,6,5,2,2,6,5,2,2,10,8,5,

%T 4,13,8,5,4,17,14,8,9,20,17,8,9,26,24,15,14,34,27,19,14,40,38,27,25,

%U 48,47,31,30,58,59,44,42,75,68,55,47,91,86,70,67,110,106,81,81,130,134,104

%N Number of partitions of n into perfect powers with each part > 1.

%H Robert Israel, <a href="/A112344/b112344.txt">Table of n, a(n) for n = 1..10000</a>

%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/PerfectPower.html">Perfect Power</a>

%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/Partition.html">Partition</a>

%e a(20) = #{16+4, 8+8+4, 8+4+4+4, 4+4+4+4+4} = 4.

%p N:= 200: # to get a(1) to a(N)

%p Pows:= {seq(seq(k^p, p=2..floor(log[k](N))),k=2..floor(sqrt(N)))}:

%p g:= proc(n,q) option remember; if n = 0 then 1 else `+`(seq(procname(n-r,r), r=select(`<=`,Pows,min(q,n)))) fi end proc:

%p seq(g(n,n), n=1..N); # _Robert Israel_, Nov 04 2015

%t M = 200; (* to get a(1) to a(M) *)

%t Pows = Table[k^p, {k, 2, Floor[Sqrt[M]]}, {p, 2, Floor[Log[k, M]]}] // Flatten // Union;

%t g[n_, q_] := g[n, q] = If[n == 0, 1, Plus @@ Table[g[n - r, r], {r, Select[Pows, # <= Min[q, n]&]}]];

%t Table[g[n, n], {n, 1, M}] (* _Jean-François Alcover_, Feb 03 2018, translated from _Robert Israel_'s Maple code *)

%o (PARI) leastp(n) = {while(!ispower(n), n--; if (n==0, return (0))); n;}

%o a(n) = {pmax = leastp(n); if (! pmax, return (0)); nb = 0; forpart(p=n, nb += (#select(x->ispower(x), Vec(p)) == #p), [4, pmax]); nb;} \\ _Michel Marcus_, Nov 04 2015

%Y Cf. A001597, A000041, A001156, A078134, A062051, A112345.

%Y Cf. A078635 (allowing 1).

%K nonn

%O 1,8

%A _Reinhard Zumkeller_, Sep 05 2005

%E Name clarified by _Sean A. Irvine_, Jan 12 2025