login
This site is supported by donations to The OEIS Foundation.

 

Logo


Hints
(Greetings from The On-Line Encyclopedia of Integer Sequences!)
A192274 Numbers which are both Zumkeller numbers and anti-Zumkeller numbers. 3

%I

%S 42,70,78,88,126,160,176,228,234,258,270,280,308,342,350,368,378,380,

%T 390,396,402,438,448,462,468,490,500,522,532,540,552,558,560,572,580,

%U 588,608,618,620,630,644,650,690,702,732,756,770,780,798,812,822,852,858

%N Numbers which are both Zumkeller numbers and anti-Zumkeller numbers.

%C 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.

%H Chai Wah Wu, <a href="/A192274/b192274.txt">Table of n, a(n) for n = 1..10000</a>

%e 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.

%e 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.

%p with(combstruct);

%p with(numtheory);

%p P:=proc(i)

%p local S,R,Stop,Comb,a,b,c,d,k,m,n,s;

%p for n from 3 to i do

%p a:={};

%p for k from 2 to n-1 do if abs((n mod k)- k/2) < 1 then a:=a union {k}; fi; od;

%p b:=nops(a); c:=op(a); s:=0;

%p if b>1 then for k from 1 to b do s:=s+c[k]; od;

%p else s:=c;

%p fi;

%p if (modp(s,2)=0 and 2*n<=s) then

%p S:=1/2*s-n; R:=select(m->m<=S,[c]); Stop:=false; Comb:=iterstructs(Combination(R));

%p while not (finished(Comb) or Stop) do Stop:=add(d,d=nextstruct(Comb))=S; od;

%p if Stop then

%p s:=sigma(n);

%p if (modp(s,2)=0 and 2*n<=s) then

%p S:=1/2*s-n; R:=select(m->m<=S,divisors(n)); Stop:=false; Comb:=iterstructs(Combination(R));

%p while not (finished(Comb) or Stop) do Stop:=add(d,d=nextstruct(Comb))=S; od;

%p if Stop then print(n); fi;

%p fi;

%p fi;

%p fi;

%p od;

%p end:

%p P(10000);

%o (Python3)

%o from sympy import divisors

%o from sympy.combinatorics.subsets import Subset

%o def antidivisors(n):

%o ....return [2*d for d in divisors(n) if n > 2*d and n % (2*d)] + \

%o ...........[d for d in divisors(2*n-1) if n > d >=2 and n % d] + \

%o ...........[d for d in divisors(2*n+1) if n > d >=2 and n % d]

%o for n in range(1,10**3):

%o ....d = divisors(n)

%o ....s = sum(d)

%o ....if not s % 2 and max(d) <= s/2:

%o ........for x in range(1,2**len(d)):

%o ............if sum(Subset.unrank_binary(x,d).subset) == s/2:

%o ................d = antidivisors(n)

%o ................s = sum(d)

%o ................if not s % 2 and max(d) <= s/2:

%o ....................for x in range(1,2**len(d)):

%o ........................if sum(Subset.unrank_binary(x,d).subset) == s/2:

%o ............................print(n,end=', ')

%o ............................break

%o ................break

%o # _Chai Wah Wu_, Aug 14 2014

%o (Python)

%o from sympy import divisors

%o import numpy as np

%o A192274 = []

%o for n in range(3,10**3):

%o ....d = divisors(n)

%o ....s = sum(d)

%o ....if not s % 2 and 2*n <= s:

%o ........d.remove(n)

%o ........s2, ld = int(s/2-n), len(d)

%o ........z = np.zeros((ld+1,s2+1),dtype=int)

%o ........for i in range(1,ld+1):

%o ............y = min(d[i-1],s2+1)

%o ............z[i,range(y)] = z[i-1,range(y)]

%o ............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 ............if z[i,s2] == s2:

%o ................d2 = [2*x for x in d if n > 2*x and n % (2*x)] + \

%o ................[x for x in divisors(2*n-1) if n > x >=2 and n % x] + \

%o ................[x for x in divisors(2*n+1) if n > x >=2 and n % x]

%o ................s, dmax = sum(d2), max(d2)

%o ................if not s % 2 and 2*dmax <= s:

%o ....................d2.remove(dmax)

%o ....................s2, ld = int(s/2-dmax), len(d2)

%o ....................z = np.zeros((ld+1,s2+1),dtype=int)

%o ....................for i in range(1,ld+1):

%o ........................y = min(d2[i-1],s2+1)

%o ........................z[i,range(y)] = z[i-1,range(y)]

%o ........................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 ........................if z[i,s2] == s2:

%o ............................A192274.append(n)

%o ........................break

%o ................break

%o # _Chai Wah Wu_, Aug 19 2014

%Y Cf. A083207, A066272, A192273.

%K nonn

%O 1,1

%A _Paolo P. Lava_, Jun 28 2011

%E Corrected entries and comment by _Chai Wah Wu_, Aug 13 2014

Lookup | Welcome | Wiki | Register | Music | Plot 2 | Demos | Index | Browse | More | WebCam
Contribute new seq. or comment | Format | Style Sheet | Transforms | Superseeker | Recent
The OEIS Community | Maintained by The OEIS Foundation Inc.

License Agreements, Terms of Use, Privacy Policy. .

Last modified October 16 03:28 EDT 2019. Contains 328040 sequences. (Running on oeis4.)