login

Reminder: The OEIS is hiring a new managing editor, and the application deadline is January 26.

A007620
Numbers m such that every k <= m is a sum of proper divisors of m (for m>1).
(Formerly M4095)
5
1, 6, 12, 18, 20, 24, 28, 30, 36, 40, 42, 48, 54, 56, 60, 66, 72, 78, 80, 84, 88, 90, 96, 100, 104, 108, 112, 120, 126, 132, 140, 144, 150, 156, 160, 162, 168, 176, 180, 192, 196, 198, 200, 204, 208, 210, 216, 220, 224, 228, 234, 240, 252, 260, 264, 270, 272, 276, 280, 288, 294, 300, 304, 306
OFFSET
1,2
COMMENTS
This sequence was formerly called "practical numbers (second definition)" because it was thought this was the definition used in Srinivasan's original paper. However, in Srinivasan's paper, one can read that his definition is "k < m". Stewart proves that Srinivasan's definition is equivalent to requiring every k <= sigma(m) be the sum of distinct divisors of m. This sequence is a subsequence of the practical numbers, A005153. - T. D. Noe, Apr 02 2010
A005153 without terms larger than 1 that are almost-perfect numbers (numbers k such that sigma(k) = 2*k-1, the only known such numbers are the powers of 2, A000079). - Amiram Eldar, Apr 07 2023
REFERENCES
Ross Honsberger, Mathematical Gems, M.A.A., 1973, p. 113.
N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).
LINKS
A. K. Srinivasan, Practical numbers, Current Science, 17 (1948), 179-180.
B. M. Stewart, Sums of distinct divisors, American Journal of Mathematics, Vol. 76, No. 4 (1954), pp. 779-785.
Robert G. Wilson v, Letter to N. J. A. Sloane, date unknown.
MATHEMATICA
DeleteCases[ A005835, q_/; (Count[ CoefficientList[ Series[ Times@@( (1+z^#)& /@ Divisors[ q ] ), {z, 0, q} ], z ], 0 ]>0) ] (* Wouter Meeussen *)
PROG
(Haskell)
a007620 n = a007620_list !! (n-1)
a007620_list = 1 : filter (\x -> all (p $ a027751_row x) [1..x]) [2..]
where p _ 0 = True
p [] _ = False
p ds'@(d:ds) m = d <= m && (p ds (m - d) || p ds m)
-- Reinhard Zumkeller, Feb 23 2014
(Python)
from itertools import count, islice
from sympy import divisors
def A007620_gen(startvalue=1): # generator of terms >= startvalue
for m in count(max(startvalue, 1)):
if m == 1:
yield 1
else:
c = {0}
for d in divisors(m, generator=True):
if d < m:
c |= {a+d for a in c}
if all(a in c for a in range(m+1)):
yield m
A007620_list = list(islice(A007620_gen(), 30)) # Chai Wah Wu, Jul 06 2023
CROSSREFS
Cf. A005153 (first definition).
Sequence in context: A376880 A204829 A005835 * A100715 A352030 A324652
KEYWORD
nonn,nice,easy
STATUS
approved