cp's OEIS Frontend

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.

A246198 Half-Zumkeller numbers: numbers n whose proper positive divisors can be partitioned into two disjoint sets whose sums are equal.

This page as a plain text file.
%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