cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A383148 k-facile numbers: Numbers m such that the sum of the divisors of m is equal to 2*m+s where s is a product of distinct divisors of m.

Original entry on oeis.org

12, 18, 20, 24, 30, 40, 42, 54, 56, 60, 66, 78, 84, 88, 90, 102, 104, 114, 120, 132, 138, 140, 168, 174, 186, 196, 204, 222, 224, 234, 246, 252, 258, 264, 270, 280, 282, 308, 312, 318, 348, 354, 360, 364, 366, 368, 380, 402, 414, 420, 426, 438, 440, 456, 464, 468, 474, 476
Offset: 1

Views

Author

Joshua Zelinsky, Apr 17 2025

Keywords

Comments

Subsequence of A005101 but seem to be much rarer.

Examples

			The sum of the divisors of 60 is 168, and 168 = 2*60 + 48, and 48 = 4*12 and 4 and 12 are divisors of 60, so 60 is in the sequence.
		

Crossrefs

Subsequence of A005101.

Programs

  • Mathematica
    q[m_] := Module[{d = Divisors[m], ab}, ab = Total[d] - 2*m; ab > 0 && AnyTrue[Subsets[d], Times @@ # == ab &]]; Select[Range[500], q] (* Amiram Eldar, Apr 18 2025 *)
  • PARI
    prodDistinctDiv(n, k, f=factor(n))=my(D=divisors([n,f])); helper(D[2..#D], k)
    helper(v,k)=if(k==1, return(1)); v=select(d->k%d==0, v); if(#v<3, if(#v==2, return(v[2]==k || vecprod(v)==k)); return(#v && v[1]==k)); my(u=v[1..#v-1]); helper(u,k) || helper(u,k/v[#v])
    is(n,f=factor(n))=my(t=sigma([n,f])-2*n); t>1 && prodDistinctDiv(n, t, f) \\ Charles R Greathouse IV, Apr 24 2025
  • Sage
    def facile_candidates(n):
        from itertools import combinations
        divs = divisors(n)
        sigma_n = sigma(n, 1)
        candidates = set()
        # Generate all products of distinct combinations of divisors
        for r in range(2, len(divs)+1):  # start from 2-element products to avoid m=n
            for combo in combinations(divs, r):
                product = prod(combo)
                if product < sigma_n:
                    candidates.add(product)
        return sorted(candidates)
    def find_facile_perfects(x):
        result = []
        for n in range(1, x+1):
            sig = sigma(n, 1)
            if sig < 2*n:
                continue
            candidates = facile_candidates(n)
            for m in candidates:
                if sig == 2*n + m:
                    print(n,m)
                    result.append(n)
                    break
        return result