OFFSET
1,1
COMMENTS
A number is called a primitive Zumkeller number if it is a Zumkeller number (A083207) but none of its proper divisors are Zumkeller numbers. These numbers are very similar to primitive non-deficient numbers (A006039), but neither is a subsequence of the other.
Because every Zumkeller number has a divisor that is a primitive Zumkeller number, every Zumkeller number z can be factored as z = d*r, where d is the smallest divisor of z that is a primitive Zumkeller number.
Every number of the form p*2^k is a primitive Zumkeller number, where p is an odd prime and k = floor(log_2(p)).
LINKS
T. D. Noe, Table of n, a(n) for n = 1..9179
MATHEMATICA
ZumkellerQ[n_] := ZumkellerQ[n] = Module[{d = Divisors[n], ds, x}, ds = Total[d]; If[OddQ[ds], False, SeriesCoefficient[Product[1 + x^i, {i, d}], {x, 0, ds/2}] > 0]];
Reap[For[n = 1, n <= 5000, n++, If[ZumkellerQ[n] && NoneTrue[Most[Divisors[ n]], ZumkellerQ], Print[n]; Sow[n]]]][[2, 1]] (* Jean-François Alcover, Mar 01 2019 *)
PROG
(Python)
from sympy import divisors
from sympy.utilities.iterables import subsets
def isz(n): # after Peter Luschny in A083207
divs = divisors(n)
s = sum(divs)
if not (s%2 == 0 and 2*n <= s): return False
S = s//2 - n
R = [m for m in divs if m <= S]
return any(sum(c) == S for c in subsets(R))
def ok(n): return isz(n) and not any(isz(d) for d in divisors(n)[:-1])
print(list(filter(ok, range(1, 5000)))) # Michael S. Branicky, Jun 20 2021
(SageMath) # uses[is_Zumkeller from A083207]
def is_primitiveZumkeller(n):
return (is_Zumkeller(n) and
not any(is_Zumkeller(d) for d in divisors(n)[:-1]))
print([n for n in (1..4216) if is_primitiveZumkeller(n)]) # Peter Luschny, Jun 21 2021
CROSSREFS
KEYWORD
nonn
AUTHOR
T. D. Noe, Sep 07 2010
STATUS
approved