Циклы «for» и «while». Вложенные циклы. Часть 2

 Вложенные циклы. Продожение

 Дано натуральное число n. Напишите программу, которая печатает численный треугольник с высотой равной n, в соответствии с примером:

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
...
n = int(input())
c = 1

for i in range(n):
    for _ in range(i + 1):
        print(c, end=" ")
        c += 1
    print()

 Дано натуральное число n. Напишите программу, которая печатает численный треугольник с высотой равной n, в соответствии с примером:

1
121
12321
1234321
123454321
...
a = int(input())

for i in range(a + 1):
    for j in range(1, i + 1):
        print(j, end='')
    for k in range(i - 1, 0, -1):
        print(k, end='')
    print()    

 На вход программе подаются два натуральных числа a и b (a <  b). Напишите программу, которая находит натуральное число из отрезка [a; b] (от a до b включительно) с максимальной суммой делителей. Если чисел с максимальной суммой делителей несколько, то искомым числом является наибольшее из них.

a = int(input())
b = int(input())

s = 0
l = 0

for i in range(a, b + 1):
    t = 0
    for j in range(1, i + 1):
        if i % j == 0:
            t += j
            if t >= s and i >= l:
                s = t
                l = i

print(l, s)

 На вход программе подается натуральное число n. Напишите программу, выводящую графическое изображение делимости чисел от 1 до n включительно. В каждой строке надо напечатать очередное число и столько символов «+», сколько делителей у этого числа.

a = int(input())

for i in range(1, a + 1):
    t = 0
    for j in range(1, i + 1):
        if i % j == 0:
            t += 1
    print(j, '+' * t, sep='')  

 На вход программе подаётся натуральное число n. Напишите программу, которая находит цифровой корень данного числа. Цифровой корень числа n получается следующим образом: если сложить все цифры этого числа, затем все цифры найденной суммы и повторять этот процесс до тех пор, пока в результате не будет получено однозначное число (цифра), которое и называется цифровым корнем первоначального числа n.

a = int(input())

while a >= 10:
    n = a % 10
    a = a // 10
    a += n
print(a)   

 Дано натуральное число n. Напишите программу, которая выводит значение суммы: 1! + 2! + 3! + … + n!

a = int(input())

from math import factorial

s = 0

while a > 0:
    m = factorial(a)
    s += m
    a -= 1
print(s)

 На вход программе подается два натуральных числа a и b (a < b). Напишите программу, которая находит все простые числа от a до b включительно.

a = int(input())
b = int(input())

for i in range(a, b + 1):
    for j in range(2, i+1):
        if i % j != 0:
            continue
        elif i % j == 0 and i != j:
            break
        print(i)