Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Let S(n) = set of divisors of n, excluding n; sequence gives n such that there is a unique subset of S(n) that sums to n.
16

%I #54 Oct 06 2024 09:17:41

%S 6,20,28,78,88,102,104,114,138,174,186,222,246,258,272,282,304,318,

%T 354,366,368,402,426,438,464,474,490,496,498,534,572,582,606,618,642,

%U 650,654,678,748,762,786,822,834,860,894,906,940,942,978,1002,1014,1038

%N Let S(n) = set of divisors of n, excluding n; sequence gives n such that there is a unique subset of S(n) that sums to n.

%C Perfect numbers (A000396) are a proper subset of this sequence. Weird numbers (A006037) are numbers whose proper divisors sum to more than the number, but no subset sums to the number.

%C Odd elements are rare: the first few are 8925, 32445, 351351, 442365; there are no more below 100 million. See A065235 for more details.

%C A065205(a(n)) = 1. - _Reinhard Zumkeller_, Jan 21 2013

%H Giovanni Resta, <a href="/A064771/b064771.txt">Table of n, a(n) for n = 1..10000</a> (terms 1..200 from T. D. Noe, terms 201..5000 from Amiram Eldar)

%e Proper divisors of 20 are 1, 2, 4, 5 and 10. {1,4,5,10} is the only subset that sums to 20, so 20 is in the sequence.

%p filter:= proc(n)

%p local P,x,d;

%p P:= mul(x^d+1, d = numtheory:-divisors(n) minus {n});

%p coeff(P,x,n) = 1

%p end proc:

%p select(filter, [$1..2000]); # _Robert Israel_, Sep 25 2024

%t okQ[n_]:= Module[{d=Most[Divisors[n]]}, SeriesCoefficient[Series[ Product[ 1+x^i, {i, d}], {x, 0, n}], n] == 1];Select[ Range[ 1100],okQ] (* _Harvey P. Dale_, Dec 13 2010 *)

%o (Haskell)

%o a064771 n = a064771_list !! (n-1)

%o a064771_list = map (+ 1) $ elemIndices 1 a065205_list

%o -- _Reinhard Zumkeller_, Jan 21 2013

%o (Python)

%o from sympy import divisors

%o def isok(n):

%o dp = {0: 1}

%o for d in divisors(n)[:-1]:

%o u = {}

%o for k in dp.keys():

%o if (s := (d + k)) <= n:

%o u[s] = dp.get(s, 0) + dp[k]

%o if s == n and u[s] > 1:

%o return False

%o for k,v in u.items():

%o dp[k] = v

%o return dp.get(n, 0) == 1

%o print([n for n in range(1, 1039) if isok(n)]) # _DarĂ­o Clavijo_, Sep 17 2024

%Y A005835 gives n such that some subset of S(n) sums to n. Cf. A065205.

%Y Cf. A000396, A006037, A065205, A065235.

%Y Cf. A027751.

%K nonn,nice

%O 1,1

%A Jonathan Ayres (jonathan.ayres(AT)btinternet.com), Oct 19 2001

%E More terms from _Don Reble_, _Jud McCranie_ and _Naohiro Nomoto_, Oct 22 2001