Skip to content

PronicNumbers ​

The pronic (oblong) numbers 2,6,12,20,…2, 6, 12, 20, … — n(n+1)n(n+1) — twice a triangular number.

PronicNumbersn(n+1)n(n+1) for n=1,2,3,…n = 1, 2, 3, ….

Domain: Collections

Details
  • A lazy indexed collection: Count(PronicNumbers)=+∞Count(PronicNumbers) = +\infty, and At(PronicNumbers,k)=k(k+1)At(PronicNumbers, k) = k(k+1) unranks in closed form -- At(PronicNumbers,5)=30At(PronicNumbers, 5) = 30.
  • OEIS A002378, whose offset differs from ours: A002378 opens a(0)=0a(0) = 0; this collection starts at n=1n=1, so At(PronicNumbers,1)=2At(PronicNumbers, 1) = 2 and the value 00 is not a member.
  • Membership goes through Element by inverting the closed form exactly -- Element(30,PronicNumbers)Element(30, PronicNumbers) is true, Element(29,PronicNumbers)Element(29, PronicNumbers) is false. PronicNumbers(k)=2⋅TriangularNumbers(k)PronicNumbers(k) = 2 \cdot TriangularNumbers(k).

Definition

Epsil, as the implementation runs it.

count()

PositiveInfinity

unrank(_r)

(_r + 1) * (_r + 1 + 1)

rank(_x)

Apply(
       (sq_at: integer) => sq_at if (sq_at + 1) * (sq_at + 1 + 1) == _x else -1,
       Fold(Function(
                      sq_at + 2 ^ sq_b if (sq_at + 2 ^ sq_b + 1) * (sq_at + 2 ^
                                                                            sq_b + 1 +
                                                                    1) <= _x else sq_at,
                      sq_at,
                      sq_b,
                    ), 0, Range(Floor(Log(_x, 2)) + 1, 0, -1)),
     ) if True else -1

valid(_x)

Apply(
       (sq_at: integer) => (sq_at + 1) * (sq_at + 1 + 1) == _x,
       Fold(Function(
                      sq_at + 2 ^ sq_b if (sq_at + 2 ^ sq_b + 1) * (sq_at + 2 ^
                                                                            sq_b + 1 +
                                                                    1) <= _x else sq_at,
                      sq_at,
                      sq_b,
                    ), 0, Range(Floor(Log(_x, 2)) + 1, 0, -1)),
     ) if True && _x >= 1 else False

Enumeration

Examples

1 more kept as data, checked against the oracles
About
Examples1
CrosswalkOEIS

See also: TriangularNumbers, SquareNumbers, Count, At, Element