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.

A346928 Irregular triangle read by rows; the n-th row contains, in ascending order, the distinct integers of the form n! / m! (with 1 <= m <= n) that do not appear in former rows.

Original entry on oeis.org

1, 2, 3, 6, 4, 12, 24, 5, 20, 60, 120, 30, 360, 720, 7, 42, 210, 840, 2520, 5040, 8, 56, 336, 1680, 6720, 20160, 40320, 9, 72, 504, 3024, 15120, 60480, 181440, 362880, 10, 90, 30240, 151200, 604800, 1814400, 3628800, 11, 110, 990, 7920, 55440, 332640, 1663200, 6652800, 19958400, 39916800
Offset: 1

Views

Author

Rémy Sigrist, Oct 16 2021

Keywords

Comments

This sequence has similarities with A209260; here we consider quotients of factorial numbers, there differences of triangular numbers.
The n-th row is included in the n-th row of A068424 and has greatest term n!.
As a flat sequence, we have a permutation of the positive integers (any n > 0 appears among the first n rows, see A348401).
For any prime number p, the p-th row contains p-1 terms.

Examples

			Triangle begins:
    1;
    2;
    3, 6;
    4, 12, 24;
    5, 20, 60, 120;
    30, 360, 720;
    7, 42, 210, 840, 2520, 5040;
    8, 56, 336, 1680, 6720, 20160, 40320;
    9, 72, 504, 3024, 15120, 60480, 181440, 362880;
    10, 90, 30240, 151200, 604800, 1814400, 3628800;
    11, 110, 990, 7920, 55440, 332640, 1663200, 6652800, 19958400, 39916800;
    ...
		

Crossrefs

Programs

  • PARI
    s=[]; for (n=1, 11, p=1; forstep (m=n, 1, -1, if (!setsearch(s, p*=m), s=setunion(s, [p]); print1 (p", "))))
    
  • Python
    from math import factorial
    def auptor(rows):
        alst, aset = [1], {1}
        for n in range(2, rows+1):
            fn = factorial(n)
            for m in range(n-1, 0, -1):
                fm = factorial(m)
                q, r = divmod(fn, factorial(m))
                if r == 0 and q not in aset:
                    alst.append(q); aset.add(q)
        return alst
    print(auptor(11)) # Michael S. Branicky, Oct 17 2021