OFFSET
1,1
COMMENTS
LINKS
Peter Luschny, Table of n, a(n) for n = 1..10000
Peter Luschny, Divisor subsets. A Python implementation for A39100[4/6/7].
EXAMPLE
p as sum of subset of divisors of p + 1.
--------------------------------------------
5 = 2 + 3;
11 = 2 + 3 + 6;
17 = 2 + 6 + 9;
19 = 4 + 5 + 10;
23 = 3 + 8 + 12;
29 = 3 + 5 + 6 + 15;
41 = 6 + 14 + 21;
47 = 3 + 8 + 12 + 24;
53 = 2 + 6 + 18 + 27;
59 = 4 + 10 + 15 + 30;
71 = 8 + 9 + 18 + 36;
79 = 5 + 8 + 10 + 16 + 40;
499= 4 + 20 + 100 + 125 + 250;
.
MAPLE
issum:= proc(x, S)
option remember;
local Sp, s;
Sp:= select(`<=`, S, x);
if member(x, Sp) then return true fi;
if convert(Sp, `+`) < x then return false fi;
s:= max(Sp); Sp:= Sp minus {s};
procname(x-s, Sp) or procname(x, Sp)
end proc: # Robert Israel, Dec 01 2025
filter:= proc(n)
local S;
S:= numtheory:-divisors(n+1) minus {1, n+1};
issum(n, S)
end proc:
select(filter, {seq(ithprime(i), i=1..1229)});
MATHEMATICA
Select[Prime[Range[3, 100]], MemberQ[Total/@Subsets[Rest[Drop[Divisors[#+1], -1]]], #]&] (* James C. McMahon, Dec 01 2025 *)
PROG
(SageMath)
def is_A391004(n):
if not is_prime(n): return False
divs = sorted(divisors(n + 1))[:-1]
k = len(divs)
for mask in range(1, 1 << k):
subset = [divs[i] for i in range(k) if mask & (1 << i)]
if sum(subset) == n + 1 and 1 in subset: return True
return False
print([n for n in range(2, 600) if is_A391004(n)])
(PARI) is_a391004(n) = my(m=n+1, s=0, so); if(!isprime(n), return(0)); my(dnt=setminus(divisors(m), [1, m]), dodd=select(x->x%2, dnt), nodd=#dodd, deven=setminus(dnt, dodd), neven=#deven); if(nodd==0, return(0)); forstep(jodd=1, nodd, 2, forsubset([nodd, jodd], sodd, so=sum(k=1, #sodd, dodd[sodd[k]]); if(so==n, return(1)); forsubset(neven, seven, my(ns=#seven); if(ns>0, s = so + sum(k=1, ns, deven[seven[k]])); if(s==n, return(1))))); 0 \\ Hugo Pfoertner, Nov 29 2025
CROSSREFS
KEYWORD
nonn
AUTHOR
Peter Luschny, Nov 25 2025
STATUS
approved
