Skip to content

SquareNumbers ​

The perfect squares 1,4,9,16,…1, 4, 9, 16, … as a lazy indexed collection, unranked by position.

OEISA000290Wolfram LanguagePolygonalNumbermathlib4IsSquare
SquareNumbersthe squares k2k^2 for k=1,2,3,…k = 1, 2, 3, …, an infinite indexed collection.

Domain: Collections

Details
  • A lazy indexed collection: Count(SquareNumbers)=+∞Count(SquareNumbers) = +\infty, and At(SquareNumbers,k)=k2At(SquareNumbers, k) = k^2 unranks in closed form -- At(SquareNumbers,5)=25At(SquareNumbers, 5) = 25.
  • OEIS A000290.
  • Membership goes through Element: Element(16,SquareNumbers)Element(16, SquareNumbers) is true, Element(15,SquareNumbers)Element(15, SquareNumbers) is false.

Definition

Epsil, as the implementation runs it.

count()

PositiveInfinity

unrank(_r)

(_r + 1) * (_r + 1)

rank(_x)

Apply(
       (sq_at: integer) => sq_at if (sq_at + 1) * (sq_at + 1) == _x else -1,
       Fold(Function(
                      sq_at + 2 ^ sq_b if (sq_at + 2 ^ sq_b + 1) *
                                          (sq_at + 2 ^ sq_b + 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) == _x,
       Fold(Function(
                      sq_at + 2 ^ sq_b if (sq_at + 2 ^ sq_b + 1) *
                                          (sq_at + 2 ^ sq_b + 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

Basic #

The first five squares

live ↗
InTake(SquareNumbers,5)\mathrm{Take}(\mathrm{SquareNumbers}, 5)Out[1,4,9,16,25]\bigl\lbrack1, 4, 9, 16, 25\bigr\rbrack
About
Examples1
CrosswalkOEISWolfram Languagemathlib4

See also: Count, At, Element, PrimeNumbers, AbundantNumbers