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

Полное решение модуля (урока) 7.3 из курса «Пколение python: курс для начинающих» с сайта stepik.org на питоне.

Что покажет приведенный ниже фрагмент кода?
num1 = 4
num2 = 6
num1 += num2
num1 *= num1
print(num1)

100

Что покажет приведенный ниже фрагмент кода?
total = 0
for i in range(1, 6):
total += i
print(total)

15

Что покажет приведенный ниже фрагмент кода?
total = 0
for i in range(1, 6):
total += i
print(total, end=»)

1361015

Количество чисел

На вход программе подаются два целых числа aa и bb (a \le b)(ab). Напишите программу, которая подсчитывает количество чисел в диапазоне от aa до bb включительно, куб которых оканчивается на 44 или 99.

Формат входных данных
На вход программе подаются два целых числа aa и bb (a \le b)(ab).

Формат выходных данных
Программа должна вывести одно целое число в соответствии с условием программы.

Примечание. Куб числа aa – это его третья степень a^3a3.

a = int(input())
b = int(input())
count = 0
for i in range(a, b + 1):
    if i % 10 == 4 or i % 10 == 9:
        count += 1
print(count)

Сумма чисел

На вход программе подается натуральное число nn, а затем nn целых чисел, каждое на отдельной строке. Напишите программу, которая подсчитывает сумму введенных чисел. 

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

Формат выходных данных
Программа должна вывести сумму данных чисел.

a = int(input())
s = 0
for i in range(a):
    s += int(input())
print(s)

Асимптотическое приближение

На вход программе подается натуральное число nn. Напишите программу, которая вычисляет значение выражения\left(1+\dfrac12 + \dfrac13 + \ldots + \dfrac{1}{n} \right) — \ln (n).(1+21​ +31​+…+n1​)−ln(n).

Примечание. Для вычисления натурального логарифма воспользуйтесь функцией log(n), которая находится в модуле math.

from math import log
n, sum = int(input()), 0
for i in range(1, n + 1):
    sum += 1 / i
print(sum - log(n))

Сумма чисел

На вход программе подается натуральное число nn. Напишите программу, которая подсчитывает сумму тех чисел от 11 до nn (включительно) квадрат которых оканчивается на 2, \, 52,5 или 88.

Формат входных данных
На вход программе подается натуральное число nn.

Формат выходных данных
Программа должна вывести единственное число в соответствии с условием задачи.

Примечание. Если таких чисел нет в указанном диапазоне, то следует вывести 00.

print(5 * ((int(input())+5) // 10)**2)

Факториал

На вход программе подается натуральное число nn. Напишите программу, которая вычисляет n!n!.

Входные данные
На вход программе подается натуральное число n, \, (n \le 12)n,(n≤12).

Выходные данные
Программа должна вывести единственное число в соответствии с условием задачи.

Примечание. Факториалом натурального числа nn, называется произведение всех натуральных чисел от 11 до nn, то естьn!=1\cdot2\cdot3\cdot…\cdot nn!=1⋅2⋅3⋅…⋅n

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

Без нулей

Напишите программу, которая считывает 10 чисел и выводит произведение отличных от нуля чисел.

Формат входных данных
На вход программе подаются 10 целых чисел, каждое на отдельной строке.

Формат выходных данных
Программа должна вывести произведение отличных от нуля чисел.

Примечание. Гарантируется, что хотя бы одно из 10 чисел является ненулевым.

p = 1
for _ in range(10):
    n = int(input())
    p *= n + (n == 0)
print(p)

Сумма делителей

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

Входные данные
На вход программе подается натуральное число nn.

Выходные данные
Программа должна вывести единственное число в соответствии с условием задачи.

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

import math

n = int(input())
s = 0
r = int(math.sqrt(n))
for i in range(1, r + 1):
    if n % i == 0:
        s += i
        s += n // i
if n / r == r:
    s -= r

print(s)

Знакочередующаяся сумма

На вход программе подается натуральное число nn. Напишите программу вычисления знакочередующей суммы 1-2+3-4+5-6 + \ldots + (-1)^{n+1}n.1−2+3−4+5−6+…+(−1)n+1n.

Входные данные
На вход программе подается натуральное число nn.

Выходные данные
Программа должна вывести единственное число в соответствии с условием задачи.

n = int(input())

if (n % 2 == 0):
    print(-n // 2)
else:
    print(n // 2 + 1)

Наибольшие числа 🌶️🌶️

На вход программе подается натуральное число nn, а затем nn различных натуральных чисел, каждое на отдельной строке. Напишите программу, которая выводит наибольшее и второе наибольшее число последовательности.

Формат входных данных
На вход программе подаются натуральное число n \ge 2n≥2, а затем nn различных натуральных чисел, каждое на отдельной строке.

Формат выходных данных
Программа должна вывести два наибольших числа, каждое на отдельной строке.

n = int(input())

max1, max2 = -1, -1

for _ in range(n):
    num = int(input())
    if num > max1:
        max2 = max1
        max1 = num
    elif num > max2:
        max2 = num
        
print(max1)
print(max2)

Only even numbers 🌶️

Напишите программу, которая считывает последовательность из 10 целых чисел и определяет является ли каждое из них четным или нет.

Формат входных данных
На вход программе подаются 10 целых чисел, каждое на отдельной строке.

Формат выходных данных
Программа должна вывести строку «YES», если все числа четные и «NO» в ином случае.

flag = 'YES'
for _ in range(10):
    a = int(input())
    if a % 2 != 0:
        flag = 'NO'
print(flag)

Последовательность Фибоначчи 🌶️

Напишите программу, которая считывает натуральное число nn и выводит первые nn чисел последовательности Фибоначчи.

Формат входных данных
На вход программе подается одно число n\,  (n \le 100)n (n≤100) – количество членов последовательности.

Формат выходных данных
Программа должна вывести члены последовательности Фибоначчи, отделенные символом пробела.

Примечание. Последовательность Фибоначчи – это последовательность натуральных чисел, где каждое последующее число является суммой двух предыдущих:1,  \, 1, \,  2, \,  3, \,  5, \,  8, \,  13, \,  21, \,  34, \,  55, \,  89, \ldots1, 1, 2, 3, 5, 8, 13,  21, 34, 55, 89,…

n = int(input())
a, b = 1, 1

for i in range(n):
    print(a, end=' ')
    a, b = b, a + b

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

    Привет спасибо за публикацию!!! Когда будет следующий урок?? :smile:

    1. phil_admin (автор)

      Доброе утро! В течение нескольких дней, не переживайте)

    2. phil_admin (автор)

      Доброе утро!
      Следующий модуль 7.4 уже вышел: https://zazlo.ru/7-4-pokolenie-python/ :)

  2. Антон

    День добрый.
    В задании «количество чисел» есть ошибка

    1. phil_admin (автор)

      Добрый день!
      Проверьте, пожалуйста, возможно вы не полностью скопировали код.
      https://imgur.com/JxsRvlB :smile:

      1. Антон

        Куб забыли в мат. выражении

        1. phil_admin (автор)

          Добрый день!
          Вычисление кубов совершенно необязательно, те же операции можно выполнять и без перевода в кубы. Проверьте пожалуйста валидность решения)

  3. Ismail

    Спасибо :smile:

    1. phil_admin (автор)

      Здравствуйте! Рады стараться)

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

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