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.

A345704 Zumkeller numbers k (A083207) such that the next Zumkeller number is k + 12.

Original entry on oeis.org

282, 840, 1596, 1794, 1920, 2496, 2928, 3108, 3522, 3540, 3594, 4008, 4188, 4602, 4620, 4998, 5268, 5862, 6060, 6708, 6888, 7086, 7788, 7968, 8382, 8400, 9048, 9840, 10362, 10542, 10920, 11100, 11568, 12126, 12162, 12180, 13422, 14106, 14322, 14394, 14880, 15348
Offset: 1

Views

Author

Amiram Eldar, Jun 24 2021

Keywords

Comments

Frank Buss and T. D. Noe conjectured (see A083207) and Robert Gerbicz proved that the largest possible gap between Zumkeller numbers is 12 (SeqFan post, 2010). A proof was also published by Mahanta et al. (2020).

Examples

			282 is a term since it is a Zumkeller number, and the next Zumkeller number is 282 + 12 = 294.
		

Crossrefs

Programs

  • Maple
    iszum:= proc(n) local D,s,P,d;
       D:= numtheory:-divisors(n);
       s:= convert(D,`+`);
       if s::odd then return false fi;
       P:= mul(1+x^d,d=D);
       coeff(P,x,s/2) > 0
    end proc:
    last:= 6: R:= NULL: count:= 0:
    for i from 7 while count < 60 do
      if iszum(i) then
         if i-last = 12 then R:= R, last; count:= count+1 fi;
         last:= i;
      fi
    od:
    R; # Robert Israel, Feb 13 2023
  • Mathematica
    zumQ[n_] := Module[{d = Divisors[n], sum, x}, sum = Plus @@ d;  EvenQ[sum] && CoefficientList[Product[1 + x^i, {i, d}], x][[1 + sum/2]] > 0]; z = Select[Range[5000], zumQ]; z[[Position[Differences[z], 12] // Flatten]]
  • Python
    from itertools import count, islice
    from sympy import divisors
    def A345704_gen(startvalue=1): # generator of terms >= startvalue
        m = -20
        for n in count(max(startvalue,1)):
            d = divisors(n)
            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:
                        if m == n-12:
                            yield m
                        m = n
                        break
    A345704_list = list(islice(A345704_gen(),10)) # Chai Wah Wu, Feb 13 2023