login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A192274
Numbers which are both Zumkeller numbers and anti-Zumkeller numbers.
3
42, 70, 78, 88, 126, 160, 176, 228, 234, 258, 270, 280, 308, 342, 350, 368, 378, 380, 390, 396, 402, 438, 448, 462, 468, 490, 500, 522, 532, 540, 552, 558, 560, 572, 580, 588, 608, 618, 620, 630, 644, 650, 690, 702, 732, 756, 770, 780, 798, 812, 822, 852, 858
OFFSET
1,1
COMMENTS
Numbers n whose sets of divisors and anti-divisors can each be partitioned into two disjoint sets whose sums are sigma(n)/2 for the sets in the divisors partition and sigma*(n)/2 for the anti-divisors partition, where sigma*(n) is the sum of the anti-divisors of n.
EXAMPLE
270-> divisors: 1,2,3,5,6,9,10,15,18,27,30,45,54,90,135,270; sigma(270)/2=360; 1+2+3+5+6+9+10+15+18+27+30+45+54+135=90+270=360.
270-> anti-divisors: 4,7,11,12,20,36,49,60,77,108,180; sigma*(270)/2=282; 4+7+11+20+60+180=12+36+49+77+108=282.
MAPLE
with(combstruct);
with(numtheory);
P:=proc(i)
local S, R, Stop, Comb, a, b, c, d, k, m, n, s;
for n from 3 to i do
a:={};
for k from 2 to n-1 do if abs((n mod k)- k/2) < 1 then a:=a union {k}; fi; od;
b:=nops(a); c:=op(a); s:=0;
if b>1 then for k from 1 to b do s:=s+c[k]; od;
else s:=c;
fi;
if (modp(s, 2)=0 and 2*n<=s) then
S:=1/2*s-n; R:=select(m->m<=S, [c]); Stop:=false; Comb:=iterstructs(Combination(R));
while not (finished(Comb) or Stop) do Stop:=add(d, d=nextstruct(Comb))=S; od;
if Stop then
s:=sigma(n);
if (modp(s, 2)=0 and 2*n<=s) then
S:=1/2*s-n; R:=select(m->m<=S, divisors(n)); Stop:=false; Comb:=iterstructs(Combination(R));
while not (finished(Comb) or Stop) do Stop:=add(d, d=nextstruct(Comb))=S; od;
if Stop then print(n); fi;
fi;
fi;
fi;
od;
end:
P(10000);
PROG
(Python)
from sympy import divisors
from sympy.combinatorics.subsets import Subset
def antidivisors(n):
return [2*d for d in divisors(n) if n > 2*d and n % (2*d)] + \
[d for d in divisors(2*n-1) if n > d >=2 and n % d] + \
[d for d in divisors(2*n+1) if n > d >=2 and n % d]
for n in range(1, 10**3):
d = divisors(n)
s = sum(d)
if not s % 2 and max(d) <= s/2:
for x in range(1, 2**len(d)):
if sum(Subset.unrank_binary(x, d).subset) == s/2:
d = antidivisors(n)
s = sum(d)
if not s % 2 and max(d) <= s/2:
for x in range(1, 2**len(d)):
if sum(Subset.unrank_binary(x, d).subset) == s/2:
print(n, end=', ')
break
break
# Chai Wah Wu, Aug 14 2014
(Python)
from sympy import divisors
import numpy as np
A192274 = []
for n in range(3, 10**3):
d = divisors(n)
s = sum(d)
if not s % 2 and 2*n <= s:
d.remove(n)
s2, ld = int(s/2-n), len(d)
z = np.zeros((ld+1, s2+1), dtype=int)
for i in range(1, ld+1):
y = min(d[i-1], s2+1)
z[i, range(y)] = z[i-1, range(y)]
z[i, range(y, s2+1)] = np.maximum(z[i-1, range(y, s2+1)], z[i-1, range(0, s2+1-y)]+y)
if z[i, s2] == s2:
d2 = [2*x for x in d if n > 2*x and n % (2*x)] + \
[x for x in divisors(2*n-1) if n > x >=2 and n % x] + \
[x for x in divisors(2*n+1) if n > x >=2 and n % x]
s, dmax = sum(d2), max(d2)
if not s % 2 and 2*dmax <= s:
d2.remove(dmax)
s2, ld = int(s/2-dmax), len(d2)
z = np.zeros((ld+1, s2+1), dtype=int)
for i in range(1, ld+1):
y = min(d2[i-1], s2+1)
z[i, range(y)] = z[i-1, range(y)]
z[i, range(y, s2+1)] = np.maximum(z[i-1, range(y, s2+1)], z[i-1, range(0, s2+1-y)]+y)
if z[i, s2] == s2:
A192274.append(n)
break
break
# Chai Wah Wu, Aug 19 2014
CROSSREFS
KEYWORD
nonn
AUTHOR
Paolo P. Lava, Jun 28 2011
EXTENSIONS
Corrected entries and comment by Chai Wah Wu, Aug 13 2014
STATUS
approved