This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A246198 #40 Nov 01 2024 20:46:50 %S A246198 6,12,20,24,28,30,40,42,48,54,56,60,66,70,78,80,84,88,90,96,102,104, %T A246198 108,112,114,120,126,132,138,140,150,156,160,168,174,176,180,186,192, %U A246198 198,204,208,210,216,220,222,224,225,228,234,240,246,252,258,260,264 %N A246198 Half-Zumkeller numbers: numbers n whose proper positive divisors can be partitioned into two disjoint sets whose sums are equal. %C A246198 All even half-Zumkeller numbers are in A083207, i.e. they are Zumkeller numbers (see Clark et al. 2008). The first 47 terms coincide with A083207. 225 is the first number in the sequence that is not a Zumkeller number. %D A246198 S. Clark et al., Zumkeller numbers, Mathematical Abundance Conference, April 2008. %H A246198 Robert Israel, <a href="/A246198/b246198.txt">Table of n, a(n) for n = 1..9188</a> (n=1..1309 from Chai Wah Wu) %H A246198 K. P. S. Bhaskara Rao and Yuejian Peng, <a href="http://dx.doi.org/10.1016/j.jnt.2012.09.020">On Zumkeller Numbers</a>, Journal of Number Theory, Volume 133, Issue 4, April 2013, pp. 1135-1155. %H A246198 Pankaj Jyoti Mahanta, Manjil P. Saikia, and Daniel Yaqubi, <a href="https://arxiv.org/abs/2008.11096">Some properties of Zumkeller numbers and k-layered numbers</a>, arXiv:2008.11096 [math.NT], 2020. %e A246198 Proper divisors of 225 are 1, 3, 5, 9, 15, 25, 45, 75 and 1+3+15+25+45=5+9+75. %p A246198 filter:= proc(n) local L,s,t,nL,B,j,k; %p A246198 L:= numtheory:-divisors(n) minus {n}; %p A246198 s:= convert(L,`+`); %p A246198 if s::odd then return false fi; %p A246198 t:= s/2; %p A246198 nL:= nops(L); %p A246198 B:= Array(0..t,1..nL); %p A246198 B[0,1]:= 1; %p A246198 B[L[1],1]:= 1; %p A246198 for j from 2 to nL do %p A246198 B[..,j]:= B[..,j-1]; %p A246198 for k from L[j] to t do %p A246198 B[k,j]:= B[k,j] + B[k-L[j],j-1] %p A246198 od: %p A246198 if B[t,j] > 0 then return true fi; %p A246198 od: %p A246198 false %p A246198 end: %p A246198 select(filter, [$2..300]); # _Robert Israel_, Aug 19 2014 %t A246198 filterQ[n_] := Module[{L, s, t, nL, B, j, k}, %t A246198 L = Most[Divisors[n]]; %t A246198 s = Total[L]; %t A246198 If[OddQ[s], Return[False]]; %t A246198 t = s/2; %t A246198 nL = Length[L]; %t A246198 B[_, _] = 0; %t A246198 B[0, 1] = 1; %t A246198 B[L[[1]], 1] = 1; %t A246198 For[j = 2, j <= nL, j++, %t A246198 Do[B[k, j] = B[k, j-1], {k, 0, t}]; %t A246198 For[k = L[[j]], k <= t, k++, %t A246198 B[k, j] = B[k, j] + B[k-L[[j]], j-1] %t A246198 ]; %t A246198 If[ B[t, j] > 0, Return[True]]; %t A246198 ]; %t A246198 False %t A246198 ]; %t A246198 Select[Range[2, 300], filterQ] (* _Jean-François Alcover_, Mar 04 2019, after _Robert Israel_ *) %t A246198 hzQ[n_] := Module[{d = Most @ Divisors[n], sum, x}, sum = Plus @@ d; EvenQ[sum] && CoefficientList[Product[1 + x^i, {i, d}], x][[1 + sum/2]] > 0]; Select[Range[2, 1000], hzQ] (* _Amiram Eldar_, May 03 2020 *) %o A246198 (Python) %o A246198 from sympy.combinatorics.subsets import Subset %o A246198 from sympy import divisors %o A246198 A246198 = [] %o A246198 for n in range(2,10**3): %o A246198 d = divisors(n) %o A246198 d.remove(n) %o A246198 s, dmax = sum(d), max(d) %o A246198 if not s % 2 and 2*dmax <= s: %o A246198 d.remove(dmax) %o A246198 s2 = s/2-dmax %o A246198 for x in range(2**len(d)): %o A246198 if sum(Subset.unrank_binary(x,d).subset) == s2: %o A246198 A246198.append(n) %o A246198 break %o A246198 (Python) %o A246198 from sympy import divisors %o A246198 import numpy as np %o A246198 A246198 = [] %o A246198 for n in range(2, 10**3): %o A246198 d = divisors(n) %o A246198 d.remove(n) %o A246198 s, dmax = sum(d), max(d) %o A246198 if not s % 2 and 2*dmax <= s: %o A246198 d.remove(dmax) %o A246198 s2, ld = int(s/2-dmax), len(d) %o A246198 z = np.zeros((ld+1, s2+1), dtype=int) %o A246198 for i in range(1, ld+1): %o A246198 y = min(d[i-1], s2+1) %o A246198 z[i, range(y)] = z[i-1, range(y)] %o A246198 z[i, range(y, s2+1)] = np.maximum(z[i-1, range(y, s2+1)], z[i-1, range(0, s2+1-y)]+y) %o A246198 if z[i, s2] == s2: %o A246198 A246198.append(n) %o A246198 break %o A246198 # _Chai Wah Wu_, Aug 19 2014 %Y A246198 Cf. A083207. %K A246198 nonn %O A246198 1,1 %A A246198 _Chai Wah Wu_, Aug 18 2014