Skip to content

SquareFreeNumbers ​

The squarefree numbers 1,2,3,5,6,…1, 2, 3, 5, 6, … -- integers divisible by no perfect square >1> 1 -- as a lazy indexed collection.

SquareFreeNumbersthe nn with every prime factor's exponent ≤1\le 1, an infinite indexed collection.

Domain: Collections

Details
  • A lazy indexed collection: Count(SquareFreeNumbers)=+∞Count(SquareFreeNumbers) = +\infty (density 6/π26/\pi^2), and AtAt unranks the kk-th by scanning forward, testing each candidate's factorisation.
  • OEIS A005117. Exactly [[KFreeIntegers]](2)[[KFreeIntegers]](2) -- the two families are unranked identically.
  • Membership goes through Element: Element(10,SquareFreeNumbers)Element(10, SquareFreeNumbers) is true (10=2⋅510 = 2 \cdot 5), Element(12,SquareFreeNumbers)Element(12, SquareFreeNumbers) is false (12=22⋅312 = 2^2 \cdot 3).

Definition

Epsil, as the implementation runs it.

count()

PositiveInfinity

unrank(_r)

Apply(
       (sn_f: integer) => sn_f if sn_f > 0 else `NaN`,
       Fold(Function(
                      sn_s if sn_s > 0 else (sn_k if sn_s + _r == 0 else sn_s -
                                                                         1) if Fold(
                                                                                    Function(ok_sf &&
                                                                                             sn_k %
                                                                                             (sf * sf) !=
                                                                                             0, ok_sf, sf),
                                                                                    True,
                                                                                    Range(2, Floor(Sqrt(sn_k)), 1),
                                                                                  ) else sn_s,
                      sn_s,
                      sn_k,
                    ), 0, Range(1, 2 * (_r + 1), 1)),
     )

rank(_x)

Fold(Function(
               sn_c + 1 if Fold(Function(
                                          ok_sf && sn_k % (sf * sf) != 0,
                                          ok_sf,
                                          sf,
                                        ), True, Range(2, Floor(Sqrt(sn_k)), 1)) else sn_c,
               sn_c,
               sn_k,
             ), 0, Range(1, _x - 1, 1)) if (Fold(
                                                 Function(
                                                           ok_sf && _x % (sf *
                                                                          sf) != 0,
                                                           ok_sf,
                                                           sf,
                                                         ),
                                                 True,
                                                 Range(2, Floor(Sqrt(_x)), 1),
                                               ) if _x >= 1 else False) else -1

valid(_x)

Fold(
      Function(ok_sf && _x % (sf * sf) != 0, ok_sf, sf),
      True,
      Range(2, Floor(Sqrt(_x)), 1),
    ) if _x >= 1 else False

Enumeration

Examples

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

See also: Count, At, Element, KFreeIntegers, PowerfulNumbers