floyd_t(m):=block( t:m*(m+1)/2, L1:makelist(makelist(k,k,1,t),j,0,m), L2:makelist(rest(L1[i],((i-1)^2+(i-1))/2),i,1,m+1), makelist(firstn(L2[i],i),i,1,m), table_form(%%))$ /* Test cases */ floyd_t(5); floyd_t(14);