OFFSET
1,2
COMMENTS
n is called a practical number (A005153) if a(n) >= n.
LINKS
Paul Tek, Table of n, a(n) for n = 1..10000
Paul Pollack and Lola Thompson, Practical pretenders, Publicationes Mathematicae Debrecen, Vol. 82, No. 3-4 (2013), pp. 651-717, arXiv preprint, arXiv:1201.3168 [math.NT], 2012.
Reinhard Zumkeller, Haskell programs for A201376, A054225, A201377, A054242
FORMULA
a(n) = 1 if and only if n is odd. a(n) = 3 if and only if n in {2,10} mod 12. Otherwise a(n) >= 7.
a(n) = A030057(n)-1.
MATHEMATICA
a[n_] := First[Complement[Range[DivisorSigma[1, n] + 1], Total /@ Subsets[Divisors[n]]]] - 1; Array[a, 100] (* Jean-François Alcover, Sep 27 2018 *)
f[p_, e_] := (p^(e + 1) - 1)/(p - 1); g[n_] := If[(ind = Position[(fct = FactorInteger[n])[[;; , 1]]/(1 + FoldList[Times, 1, f @@@ Most@fct]), _?(# > 1 &)]) == {}, n, Times @@ (Power @@@ fct[[1 ;; ind[[1, 1]] - 1]])]; a[n_] := DivisorSigma[1, g[n]]; Array[a, 100] (* Amiram Eldar, Sep 27 2019 *)
PROG
(PARI) a(n)=my(d=divisors(n), t, v=vector(2^#d-1, i, t=vecextract(d, i); sum(j=1, #t, t[j]))); v=vecsort(v, , 8); for(i=1, #v, if(v[i]!=i, return(i-1))); v[#v]
(Haskell) see Haskell link, 3.2.2
a225561 n = length $ takeWhile (not . null) $
map (ps [] $ a027750_row n) [1..] where
ps qs _ 0 = [qs]
ps _ [] _ = []
ps qs (k:ks) m =
if m == 0 then [] else ps (k:qs) ks (m - k) ++ ps qs ks m
-- Reinhard Zumkeller, May 11 2013
(Python)
from sympy import divisors
def A225561(n):
c = {0}
for d in divisors(n, generator=True):
c |= {a+d for a in c}
k = 1
while k in c:
k += 1
return k-1 # Chai Wah Wu, Jul 05 2023
CROSSREFS
KEYWORD
nonn,look
AUTHOR
Charles R Greathouse IV, May 10 2013
STATUS
approved