Решение на питоне заданий из модуля 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 …
.
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 …
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] с максимальной суммой делителей.
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 включительно. В каждой строке надо напечатать очередное число и столько символов «+», сколько делителей у этого числа.
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 получается следующим образом: если сложить все цифры этого числа, затем все цифры найденной суммы и повторить этот процесс, то в результате будет получено однозначное число (цифра), которое и называется цифровым корнем данного числа.
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!.
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 включительно.
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.
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
Понравилась статья? Поделиться с друзьями:
Подписаться
6 комментариев
Новые
СтарыеПопулярные
Межтекстовые Отзывы
Посмотреть все комментарии
Лилия
1 год назад
Второй вариант решения с факториалом. from math import* n = int(input()) x = 0 for i in range(1, n+1): x+=factorial(i) print(x)
A
1 год назад
Решение задачи с треугольником (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
Второй вариант решения с факториалом.
from math import*
n = int(input())
x = 0
for i in range(1, n+1):
x+=factorial(i)
print(x)
Решение задачи с треугольником (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()
У вас небольшая ошибка в задаче Делители-1
Вы не учли примечание: «Если таких чисел несколько, то выведите наибольшее из них.»
Для этого нужно поменять условие:
if maximum > total_maximum
на
if maximum >= total_maximum
Здравствуйте!
Большое спасибо, исправил
Спасибо!
а когда будут новые темы. 9.2, 9.3 и так далее?
Здравствуйте! Скоро)