Решение модуля 7.9 из курса «Поколение python: курс для начинающих»

Решение на питоне заданий из модуля 7.9 с сайта stepik.org из курса «Поколение python: курс для начинающих». Предыдущий модуль 7.8.

Численный треугольник 3
Дано натуральное число nn. Напишите программу, которая печатает численный треугольник с высотой равной nn, в соответствии с примером:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21

Формат входных данных
На вход программе подается одно натуральное число.
Формат выходных данных
Программа должна вывести треугольник в соответствии с условием.
Примечание. Используйте вложенный цикл for.

p =0
n = int(input())
for i in range(n):
    for j in range(i + 1):
        print(p+1, end=' ')
        p+=1
    print()

Численный треугольник 4
Дано натуральное число nn. Напишите программу, которая печатает численный треугольник с высотой равной nn, в соответствии с примером:
1
121
12321
1234321
123454321

Формат входных данных
На вход программе подается одно натуральное число.Формат выходных данных
Программа должна вывести треугольник в соответствии с условием.
Примечание. Используйте вложенный питон цикл for.

n = int(input())
for i in range(1, n + 1):
    for j in range(1, 2 * i):
        print(min(j, 2 * i - j), end='')
    print()

Делители-1 🌶️
На вход программе подается два натуральных числа aa и bb (a < ba< b). Напишите программу, которая находит натуральное число из отрезка [a; \, b][a;b] с максимальной суммой делителей.
Формат входных данных
На вход программе подаются два числа, каждое на отдельной строке.
Формат выходных данных
Программа на python должна вывести два числа на одной строке, разделенных пробелом: число с максимальной суммой делителей и сумму его делителей.
Примечание. Если таких чисел несколько, то выведите наибольшее из них.

a , b = int(input()), int(input())
total_maximum = 0
digit = 0

for i in range(a, b + 1):
    maximum = 0
    for j in range(1, i + 1):
        if i % j == 0:
            maximum += j
        if maximum >= total_maximum:
            total_maximum = maximum
            digit = j
print(digit, total_maximum)

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

n = int(input())
for i in range(1, n+1):
    print(i, end = '')
    for j in range(1, i+1):
        if i%j == 0:
            print('+', end = '')
    print()

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

n = int(input())
while n // 10 > 0:
    n = n // 10 + n % 10
print(n)

Сумма факториалов
Дано натуральное число nn. Напишите программу, которая выводит значение суммы 1!+2!+3!+\ldots+n!1!+2!+3!+…+n!.
Формат входных данных
На вход программе подается одно натуральное число.
Формат выходных данных
Программа должна вывести значение суммы 1!+2!+3!+\ldots+n!1!+2!+3!+…+n!.
Примечание 1. Факториалом натурального числа nn, называется произведение всех натуральных чисел от 11 до nn, то естьn!=1\cdot2\cdot3\cdot…\cdot nn!=1⋅2⋅3⋅…⋅n
Примечание 2. Задачу можно решить без вложенного цикла. Напишите две версии программы =)

n = int(input())
a = 1
b = 0
for i in range(1, n + 1):
    a *= i
    b += a
print(b)

Простые числа
На вход программе подается два натуральных числа aa и bb (a < bab). Напишите программу, которая находит все простые числа от aa до bb включительно.
Формат входных данных
На вход программе подаются два числа, каждое на отдельной строке.
Формат выходных данных
Программа должна вывести все простые числа от aa до bb включительно, каждое на отдельной строке.
Примечание. Число 11 простым не является.

a, b, = int(input()), int(input())
for i in range(a, b + 1):
    if i == 1:
        continue
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        print(i)

Ответы на модуль 7.9 выставлены для самопроверки на питоне. Найти оригинальный курс «Поколение python» можно на платформе stepik.org.

Понравилась статья? Поделиться с друзьями:
Комментарии: 4
  1. Стасяо сан

    Спасибо! ;-) :) а когда будут новые темы. 9.2, 9.3 и так далее?

    1. phil_admin (автор)

      Здравствуйте! Скоро)

  2. Нарек

    У вас небольшая ошибка в задаче Делители-1
    Вы не учли примечание: «Если таких чисел несколько, то выведите наибольшее из них.»
    Для этого нужно поменять условие:
    if maximum > total_maximum
    на
    if maximum >= total_maximum

    1. phil_admin (автор)

      Здравствуйте!
      Большое спасибо, исправил ;-)

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: