Floyd's triangle   lists the natural numbers in a right triangle aligned to the left where

 the first row is   1     (unity)
 successive rows start towards the left with the next number followed by successive naturals listing one more number than the line above.


The first few lines of a Floyd triangle looks like this:

 1
 2  3
 4  5  6
 7  8  9 10
11 12 13 14 15



Task

 Write a program to generate and display here the first   n   lines of a Floyd triangle. 
(Use   n=5   and   n=14   rows).
 Ensure that when displayed in a mono-space font, the numbers line up in vertical columns as shown and that only one space separates numbers of the last row.


(defun flotri (n)
  (let* ((last (trunc (* n (+ n 1)) 2))
         (colw (mapcar [chain tostring length]
                       (range (- last n -1) last)))
         (x 0))
    (each ((r (range* 0 n)))
      (each ((c (range 0 r)))
        (format t " ~*a" [colw c] (inc x)))
      (put-line))))
 
(defun usage (msg)
  (put-line `error: @msg`)
  (put-line `usage:\n@(ldiff *full-args* *args*) <smallish-positive-integer>`)
  (exit 1))
 
(tree-case *args*
  ((num blah . etc) (usage "too many arguments"))
  ((num) (flotri (int-str num)))
  (() (usage "need an argument")))