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.


proc floydTriangle n {
    # Compute the column widths
    for {set i [expr {$n*($n-1)/2+1}]} {$i <= $n*($n+1)/2} {incr i} {
	lappend w [string length $i]
    }
    # Print the triangle
    for {set i 0; set j 1} {$j <= $n} {incr j} {
	for {set p -1; set k 0} {$k < $j} {incr k} {
	    puts -nonewline [format "%*d " [lindex $w [incr p]] [incr i]]
	}
	puts ""
    }
}
 
# Demonstration
puts "Floyd 5:"
floydTriangle 5
puts "Floyd 14:"
floydTriangle 14