核心思路从后往前排, 通过n算出最后一个数是为number, number排在第一行,(number-1)排在第二行, 排n行, 之后(number-n)又排到了第一行,之后排n-1行

while True:
    try:
        n=int(input())
        number=0
        for i in range(n+1):
            number+=i
        L=[]
        for i1 in range(n):
            L.append([])
        
        while number>0:
            for i2 in range(n):
                L[i2].append(str(number-i2))
            number-=n
            n-=1
        
        for item in L:
            print(" ".join(item[::-1]))
    except:
        break