A381886 Triangle read by rows: T(n, k) = Sum_{j=1..floor(log[k](n))} floor(n / k^j) if k >= 2, T(n, 1) = n, T(n, 0) = 0^n.
1, 0, 1, 0, 2, 1, 0, 3, 1, 1, 0, 4, 3, 1, 1, 0, 5, 3, 1, 1, 1, 0, 6, 4, 2, 1, 1, 1, 0, 7, 4, 2, 1, 1, 1, 1, 0, 8, 7, 2, 2, 1, 1, 1, 1, 0, 9, 7, 4, 2, 1, 1, 1, 1, 1, 0, 10, 8, 4, 2, 2, 1, 1, 1, 1, 1, 0, 11, 8, 4, 2, 2, 1, 1, 1, 1, 1, 1, 0, 12, 10, 5, 3, 2, 2, 1, 1, 1, 1, 1, 1
Offset: 0
Examples
Triangle starts: [ 0] 1; [ 1] 0, 1; [ 2] 0, 2, 1; [ 3] 0, 3, 1, 1; [ 4] 0, 4, 3, 1, 1; [ 5] 0, 5, 3, 1, 1, 1; [ 6] 0, 6, 4, 2, 1, 1, 1; [ 7] 0, 7, 4, 2, 1, 1, 1, 1; [ 8] 0, 8, 7, 2, 2, 1, 1, 1, 1; [ 9] 0, 9, 7, 4, 2, 1, 1, 1, 1, 1; [10] 0, 10, 8, 4, 2, 2, 1, 1, 1, 1, 1; [11] 0, 11, 8, 4, 2, 2, 1, 1, 1, 1, 1, 1; [12] 0, 12, 10, 5, 3, 2, 2, 1, 1, 1, 1, 1, 1;
Links
- Jeffrey C. Lagarias and Wijit Yangjit, The factorial function and generalizations, extended, arXiv:2310.12949 [math.NT], 2023.
- A. M. Oller-Marcen and J. Maria Grau, On the Base-b Expansion of the Number of Trailing Zeros of b^k!, J. Int. Seq. 14 (2011) 11.6.8.
Crossrefs
Programs
-
Maple
T := (n, b) -> local i; ifelse(b = 0, b^n, ifelse(b = 1, n, add(iquo(n, b^i), i = 1..floor(log(n, b))))): seq(seq(T(n, b), b = 0..n), n = 0..12); # Alternative: T := (n, k) -> local j; ifelse(k = 0, k^n, ifelse(k = 1, n, add(padic:-ordp(j, k), j = 1..n))): for n from 0 to 12 do seq(T(n, k), k = 0..n) od;
-
Mathematica
T[n_, 0] := If[n == 0, 1, 0]; T[n_, 1] := n; T[n_, k_] := Last@Accumulate[IntegerExponent[Range[n], k]]; Table[T[n, k], {n, 0, 12}, {k, 0, n}] // MatrixForm (* Alternative: *) T[n_, k_] := Sum[Floor[n/k^j], {j, Floor[Log[k, n]]}]; T[n_, 1] := n; T[n_, 0] := 0^n; T[0, 0] = 1; Flatten@ Table[T[n, k], {n, 0, 12}, {k, 0, n}] (* Michael De Vlieger, Apr 03 2025 *)
-
PARI
T(n,k) = if (n==0, 1, if (n==1, k, if (k==0, 0, if (k==1, n, sum(j=1, n, valuation(j, k)))))); row(n) = vector(n+1, k, T(n,k-1)); \\ Michel Marcus, Apr 04 2025
-
Python
from math import log def T(n: int, b: int) -> int: return (b**n if b == 0 else n if b == 1 else sum(n // (b**i) for i in range(1, 1 + int(log(n, b))))) print([[T(n, b) for b in range(n+1)] for n in range(12)])
-
SageMath
def T(n, b): return (b^n if b == 0 else n if b == 1 else sum(valuation(j, b) for j in (1..n))) print(flatten([[T(n, b) for b in range(n+1)] for n in srange(13)]))
Formula
T(n, k) = Sum_{j=1..n} valuation(j, k) for n >= 2.