login
Let d_1 ... d_k be the divisors of n. Then a(n) = min_{ e_1 = +-1, ... e_k = +-1 } | Sum_i e_i d_i |.
3

%I #19 Jan 05 2020 05:53:42

%S 1,1,2,1,4,0,6,1,5,2,10,0,12,4,6,1,16,1,18,0,10,8,22,0,19,10,14,0,28,

%T 0,30,1,18,14,22,1,36,16,22,0,40,0,42,4,12,20,46,0,41,7,30,6,52,0,38,

%U 0,34,26,58,0,60,28,22,1,46,0,66,10,42,0,70,1,72,34,26,12,58,0,78,0

%N Let d_1 ... d_k be the divisors of n. Then a(n) = min_{ e_1 = +-1, ... e_k = +-1 } | Sum_i e_i d_i |.

%H Amiram Eldar, <a href="/A103977/b103977.txt">Table of n, a(n) for n = 1..10000</a>

%F If n=p (prime), then a(n)=p-1. If n=2^m, then a(n)=1. [Corrected by _R. J. Mathar_, Nov 27 2007]

%F a(n) = 0 iff n is a Zumkeller number (A083207). - _Amiram Eldar_, Jan 05 2020

%e a(6) = 1 + 2 + 3 - 6 = 0.

%p A103977 := proc(n) local divs,a,acandid,filt,i,p,sigs ; divs := convert(numtheory[divisors](n),list) ; a := add(i,i=divs) ; for sigs from 0 to 2^nops(divs)-1 do filt := convert(sigs,base,2) ; while nops(filt) < nops(divs) do filt := [op(filt), 0] ; od ; acandid := 0 ; for p from 0 to nops(divs)-1 do if op(p+1,filt) = 0 then acandid := acandid-op(p+1,divs) ; else acandid := acandid+op(p+1,divs) ; fi ; od: acandid := abs(acandid) ; if acandid < a then a := acandid ; fi ; od: RETURN(a) ; end: seq(A103977(n),n=1..80) ; # _R. J. Mathar_, Nov 27 2007

%t a[n_] := Module[{d = Divisors[n], c, p, m}, c = CoefficientList[Product[1 + x^i, {i, d}], x]; p = -1 + Position[c, _?(# > 0 &)] // Flatten; m = Length[p]; If[OddQ[m], If[(d = p[[(m + 1)/2]] - p[[(m - 1)/2]]) == 1, 0, d], p[[m/2 + 1]] - p[[m/2]]]]; Array[a, 100] (* _Amiram Eldar_, Dec 11 2019 *)

%Y Cf. A125732, A125733, A005835, A023196, A083207.

%K nonn

%O 1,3

%A _Yasutoshi Kohmoto_, Jan 01 2007

%E More terms from _R. J. Mathar_, Nov 27 2007