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

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

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

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

.

num = int(input())             # Определение высоты массива
count = 0                      # Порядковый номер цифры = число в массиве

for y in range(1, num + 1):    # Первый цикл высоты массива
    for x in range(y):         # Второй цикл длины массива 
        count += 1             # увеличиваем счетчик
        print(count, end=' ')  # Вывод текущего числа и в конце пробел
    print()                    # Переход к новой строке 

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

Решение модуля 7.9 из курса "Поколение python: курс для начинающих"
num = int(input())

for i in range(1, num + 1):   # цикл отвечающий за количество рядов
    count = 0                 # счетчик для ряда, при каждом новом цикле обнуляется
    for j in range(i):        # 1й вложенный 
        count += 1            # увеличиваем цифру в ряду
        print(count, end='')  # вывод на печать без пробелов
    for k in range(i, 1, -1): # 2й вложенный 
        count -= 1            # уменьшаем цифру в ряду
        print(count, end='')  # вывод на печать без пробелов
    print()                   # переход на новую строку

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

Решение модуля 7.9 из курса "Поколение python: курс для начинающих"
a , b = int(input()), int(input())
total_maximum = 0                    # сумма делителей
digit = 0                            # число с максимальной суммой делителей

for i in range(a, b + 1):             # цикл перебирающий все числа от a до b включительно
    maximum = 0                       # обнуление суммы делителей, для нового цикла
    for j in range(1, i + 1):         # проверяем все числа от 1 до числа не превышающего проверяемое
        if i % j == 0:                # проверка на деление без остатка
            maximum += j              # суммируем делители
        if maximum >= total_maximum:  # если сумма делителей больше max суммы делителей
            total_maximum = maximum   # записываем в переменную максимальную
            digit = j
print(digit, total_maximum)           # вывод 

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

Решение модуля 7.9 из курса "Поколение python: курс для начинающих"
n = int(input())

for i in range(1, n+1):        # циклом перебираем все числа от 1 до n включительно
    print(i, end = '')         # вывод текущего числа
    for j in range(1, i+1):    # цикл поиска делителя 
        if i % j == 0:         # если число делится без остатка
            print('+', end='') # то печатаем + без пробела
    print()                    # переход на новую строку

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

Решение модуля 7.9 из курса "Поколение python: курс для начинающих"
n=int(input())      # ввод числа

while n > 9:        # до тех пор, пока в числе n не останется одна цифраа           
    s = 0    
    while (n > 0):
        last_digit = n % 10  # получить последнюю цифру
        s += last_digit      # к числу прибавляем последнюю цифру 
        n = n // 10          # удалить последнюю цифру из числа
    n = s
    
print(n)

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

Решение модуля 7.9 из курса "Поколение python: курс для начинающих"
num = int(input())           # кол-во факториалов
total = 0                    # сумма факториалов
factorial = 1                # вычисляемый факториал

for i in range(1, num+1):    # перебираем факториалы
    for j in range(1, i+1):  # вычисляем каждый факториал
        factorial *= j       # вычисляем факториал
    total += factorial       # Суммируем факториалы чисел.
    factorial = 1            # "обнуляем факториал"

print(total)

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

Решение модуля 7.9 из курса "Поколение python: курс для начинающих"
a, b, = int(input()), int(input())

for i in range(a, b + 1):
    if i == 1:                # 1 не является простым числом
        continue              # пропускаем цикл
    for j in range(2, i):     # перебираем делители от 2 до i  
        if i % j == 0:        # если делится без остатка, то оно не простое
            break             # завершаем вложенный цикл
    else:
        print(i)

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

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

6 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Лилия
Лилия
1 год назад

Второй вариант решения с факториалом.
from math import*
n = int(input())
x = 0
for i in range(1, n+1):
x+=factorial(i)
print(x)

A
A
2 лет назад

Решение задачи с треугольником (123454321) в рамках темы корректнее будет выглядеть вот так:
n=int(input())
for i in range (1, n+1):
for j in range (i):
print(j+1, end=»»)
for k in range (j,0,-1):
print(k, end = «»)
print()

Нарек
Нарек
2 лет назад

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

Стасяо сан
Стасяо сан
2 лет назад

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

6
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x