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.


import strutils
 
proc floyd(rowcount = 5): seq[seq[int]] =
  result = @[@[1]]
  while result.len < rowcount:
    let n = result[result.high][result.high] + 1
    var row = newSeq[int]()
    for i in n .. n + result[result.high].len:
      row.add i
    result.add row
 
proc pfloyd(rows: seq[seq[int]]) =
  var colspace = newSeq[int]()
  for n in rows[rows.high]: colspace.add(($n).len)
  for row in rows:
    for i, x in row:
      stdout.write align($x, colspace[i])," "
    echo ""
 
for i in [5, 14]:
  pfloyd(floyd(i))
  echo ""