%I #18 Apr 07 2023 05:25:17
%S 1,3,4,7,8,9,13,14,15,16,19,20,21,24,25,27,28,30,32,35,36,39,40,42,44,
%T 45,48,49,49,50,51,52,55,60,63,64,63,64,66,68,70,72,77,80,81,79,80,81,
%U 84,85,90,91,96,99,100,91,92,93,96,100,102,105,112,117,120,121
%N Triangle read by rows, based on array described below.
%C The interesting property of this array is that the main diagonal gives A000960.
%H G. C. Greubel, <a href="/A100452/b100452.txt">Rows n = 1..50 of the triangle, flattened</a>
%H H. Killingbergtro and C. U. Jensen, <a href="https://www.jstor.org/stable/24524630">Problem 116</a>, Nord. Mat. Tidskr. 5 (1957), 160-161.
%F Form an array a(m,n) (n >= 1, 1 <= m <= n) by: a(1,n) = n^2 for all n; a(m+1,n) = (n-m)*floor( (a(m,n)-1)/(n-m) ) for 1 <= m <= n-1.
%e Array begins:
%e 1 4 9 16 25 36 49 64 81 100 ...
%e 3 8 15 24 35 48 63 80 99 ...
%e 7 14 21 32 45 60 77 96 ...
%e 13 20 30 44 55 72 91 ...
%e 19 28 42 52 70 90 ...
%e and triangle begins:
%e 1
%e 3 4
%e 7 8 9
%e 13 14 15 16
%e 19 20 21 24 25
%e 27 28 30 32 35 36
%e ...
%t max=11; a[1, n_]:= n^2;
%t a[m_, n_]/; 1<m<=n := a[m, n]= (n-m+1)*Floor@((a[m-1, n] -1)/(n-m+1));
%t a[_, _]=0;
%t t= Table[a[m, n], {m,max}, {n,m,max}];
%t Flatten[Table[t[[m-n+1, n]], {m,max}, {n,m}]] (* _Jean-François Alcover_, Feb 21 2012 *)
%o (Magma)
%o function t(n,k) // t = A100452
%o if k eq 1 then return n^2;
%o else return (n-k+1)*Floor((t(n,k-1) -1)/(n-k+1));
%o end if;
%o end function;
%o [t(n,n-k+1): k in [1..n], n in [1..15]]; // _G. C. Greubel_, Apr 07 2023
%o (SageMath)
%o def t(n, k): # t = A100452
%o if (k==1): return n^2
%o else: return (n-k+1)*((t(n, k-1) -1)//(n-k+1))
%o flatten([[t(n, n-k+1) for k in range(1,n+1)] for n in range(1, 16)]) # _G. C. Greubel_, Apr 07 2023
%Y Cf. A000960, A100453.
%Y Column sums give A100454.
%Y Row 1 = A000290, row 2 = A000290 - 1, row 3 = A100451.
%Y See also A100461.
%K nonn,tabl,nice
%O 1,2
%A _N. J. A. Sloane_, Nov 22 2004