A339979 Coreful Zumkeller numbers: numbers whose set of coreful divisors can be partitioned into two disjoint sets of equal sum.
36, 72, 144, 180, 200, 252, 288, 324, 360, 392, 396, 400, 468, 504, 576, 600, 612, 648, 684, 720, 784, 792, 800, 828, 900, 936, 1008, 1044, 1116, 1152, 1176, 1200, 1224, 1260, 1296, 1332, 1368, 1400, 1440, 1476, 1548, 1568, 1584, 1600, 1620, 1656, 1692, 1764
Offset: 1
Keywords
Examples
36 is a term since its set of coreful divisors, {6, 12, 18, 36}, can be partitioned into the two disjoint sets, {6, 12, 18} and {36}, whose sums are equal: 6 + 12 + 18 = 36.
Crossrefs
Programs
-
Mathematica
corZumQ[n_] := Module[{r = Times @@ FactorInteger[n][[;; , 1]], d, sum, x}, d = r * Divisors[n/r]; (sum = Plus @@ d) >= 2*n && EvenQ[sum] && CoefficientList[Product[1 + x^i, {i, d}], x][[1 + sum/2]] > 0]; Select[Range[1800], corZumQ]
-
Python
from itertools import count, islice from sympy import primefactors, divisors def A339979_gen(startvalue=1): # generator of terms >= startvalue for n in count(max(startvalue,1)): f = primefactors(n) d = [x for x in divisors(n) if primefactors(x)==f] s = sum(d) if s&1^1 and n<<1<=s: d = d[:-1] s2, ld = (s>>1)-n, len(d) z = [[0 for in range(s2+1)] for in range(ld+1)] for i in range(1, ld+1): y = min(d[i-1], s2+1) z[i][:y] = z[i-1][:y] for j in range(y,s2+1): z[i][j] = max(z[i-1][j],z[i-1][j-y]+y) if z[i][s2] == s2: yield n break A339979_list = list(islice(A339979_gen(),20)) # Chai Wah Wu, Feb 14 2023
Comments