Решение на питоне заданий из модуля 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.
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
Второй вариант решения с факториалом.
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 и так далее?
Здравствуйте! Скоро)