PerfectPowerNumbers
The perfect powers -- integers with -- as a lazy indexed collection.
OEIS
A001597PerfectPowerNumbersthe for integers , an infinite indexed collection.Details
- A lazy indexed collection: , and unranks the -th by scanning forward, testing each candidate by binary search over exponents.
- OEIS A075109 -- the convention excludes , unlike A001597's .
- Membership goes through Element: is true (), is false under this convention (needs ).
Definition
Epsil, as the implementation runs it.
count()
PositiveInfinityunrank(_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 sn_k >=
4 &&
Fold(
Function(pp_f ||
Round(sn_k ^
(1 / pp_e)) >=
2 &&
Round(sn_k ^
(1 / pp_e)) ^
pp_e ==
sn_k, pp_f, pp_e),
False,
Range(2, Floor(Log(sn_k, 2)) +
1, 1),
) else sn_s,
sn_s,
sn_k,
), 0, Range(1, (_r + 1 + 1) ^ 2, 1)),
)rank(_x)
Fold(
Function(sn_c + 1 if sn_k >= 4 && Fold(
Function(
pp_f || Round(sn_k ^ (1 /
pp_e)) >=
2 && Round(sn_k ^
(1 /
pp_e)) ^
pp_e == sn_k,
pp_f,
pp_e,
),
False,
Range(
2,
Floor(Log(sn_k, 2)) + 1,
1,
),
) else sn_c, sn_c, sn_k),
0,
Range(1, _x - 1, 1),
) if (_x >= 4 && Fold(Function(
pp_f || Round(_x ^ (1 / pp_e)) >= 2 && Round(_x ^
(1 / pp_e)) ^
pp_e == _x,
pp_f,
pp_e,
), False, Range(2, Floor(Log(_x, 2)) + 1, 1)) if _x >= 1 else False) else -1valid(_x)
_x >= 4 && Fold(
Function(
pp_f || Round(_x ^ (1 / pp_e)) >= 2 && Round(_x ^ (1 /
pp_e)) ^
pp_e == _x,
pp_f,
pp_e,
),
False,
Range(2, Floor(Log(_x, 2)) + 1, 1),
) if _x >= 1 else FalseEnumeration
Examples
1 more kept as data, checked against the oraclesAbout
| Examples | 1 |
|---|---|
| Crosswalk | OEIS |
See also: Count, At, Element, PowerfulNumbers, SquareNumbers