HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>19 май 2023</li>
2 <ul><li>19 май 2023</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><h2>Что такое факториал и как его вычислить</h2>
4 </ul><h2>Что такое факториал и как его вычислить</h2>
5 <p>Статья, после которой вы начнёте щёлкать факториалы как орешки.</p>
5 <p>Статья, после которой вы начнёте щёлкать факториалы как орешки.</p>
6 <p>Иллюстрация: Катя Павловская для Skillbox Media</p>
6 <p>Иллюстрация: Катя Павловская для Skillbox Media</p>
7 <p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
7 <p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
8 <p>Даже если вы уже давно окончили школу, факториалы всё равно могут доставить немало приятных флешбэков - например, если вы обучаетесь программированию и <a>знакомитесь с задачками на рекурсию</a>или комбинаторику. Поэтому мы решили максимально просто объяснить, что такое факториал, как его вычислять и зачем он вообще нужен.</p>
8 <p>Даже если вы уже давно окончили школу, факториалы всё равно могут доставить немало приятных флешбэков - например, если вы обучаетесь программированию и <a>знакомитесь с задачками на рекурсию</a>или комбинаторику. Поэтому мы решили максимально просто объяснить, что такое факториал, как его вычислять и зачем он вообще нужен.</p>
9 <p>Эта статья будет полезна как опытным программистам, которые хотят освежить знания, так и тем, кто ещё учится: школьникам, студентам и совсем зелёным джунам.</p>
9 <p>Эта статья будет полезна как опытным программистам, которые хотят освежить знания, так и тем, кто ещё учится: школьникам, студентам и совсем зелёным джунам.</p>
10 <p>Содержание:</p>
10 <p>Содержание:</p>
11 <ul><li><a>Что такое факториал</a></li>
11 <ul><li><a>Что такое факториал</a></li>
12 <li><a>Для чего он нужен</a></li>
12 <li><a>Для чего он нужен</a></li>
13 <li><a>Основные свойства и формулы</a></li>
13 <li><a>Основные свойства и формулы</a></li>
14 <li><a>Шпаргалка: таблица факториалов</a></li>
14 <li><a>Шпаргалка: таблица факториалов</a></li>
15 <li><a>Решаем задачи на факториалы</a></li>
15 <li><a>Решаем задачи на факториалы</a></li>
16 <li><a>Что запомнить</a></li>
16 <li><a>Что запомнить</a></li>
17 </ul><p><strong>Факториал числа n</strong> - это произведение всех натуральных чисел от единицы до n. Обозначается факториал символом восклицательного знака: !.</p>
17 </ul><p><strong>Факториал числа n</strong> - это произведение всех натуральных чисел от единицы до n. Обозначается факториал символом восклицательного знака: !.</p>
18 <p>Это определение из учебника, и оно пока звучит сложновато - неясно, зачем эти факториалы вообще нужны и как они могут пригодиться в науке и технике. Но об этом чуть позже - для начала давайте посмотрим на примеры факториалов:</p>
18 <p>Это определение из учебника, и оно пока звучит сложновато - неясно, зачем эти факториалы вообще нужны и как они могут пригодиться в науке и технике. Но об этом чуть позже - для начала давайте посмотрим на примеры факториалов:</p>
19 <em>Изображение: Skillbox Media</em><p>Чтобы вычислить их, нам нужно перемножить все числа от единицы до числа, стоящего под знаком факториала - так гласит определение. Получаем выражения:</p>
19 <em>Изображение: Skillbox Media</em><p>Чтобы вычислить их, нам нужно перемножить все числа от единицы до числа, стоящего под знаком факториала - так гласит определение. Получаем выражения:</p>
20 <em>Изображение: Skillbox Media</em><p>Ещё в математическом определении сказано, что факториал не может быть отрицательным или дробным - то есть вот такие факториалы вычислить нельзя:</p>
20 <em>Изображение: Skillbox Media</em><p>Ещё в математическом определении сказано, что факториал не может быть отрицательным или дробным - то есть вот такие факториалы вычислить нельзя:</p>
21 <em>Изображение: Skillbox Media</em><p>Факториалы незаменимы там, где нужно быстро посчитать количество комбинаций и сочетаний разных предметов. В математике этому посвящён даже целый раздел - комбинаторика. Её методы используют много где: от лингвистики до криптографии и анализа ДНК. И во всех этих сферах факториал помогает упрощать сложные вычисления.</p>
21 <em>Изображение: Skillbox Media</em><p>Факториалы незаменимы там, где нужно быстро посчитать количество комбинаций и сочетаний разных предметов. В математике этому посвящён даже целый раздел - комбинаторика. Её методы используют много где: от лингвистики до криптографии и анализа ДНК. И во всех этих сферах факториал помогает упрощать сложные вычисления.</p>
22 <p>Разберём на примере, как это работает.</p>
22 <p>Разберём на примере, как это работает.</p>
23 <p>Допустим, у вас есть пять шоколадок и вы решили раздать их пяти друзьям - каждому по одной. Задача - выяснить, сколько существует способов раздать эти шоколадки. Начинаем размышлять:</p>
23 <p>Допустим, у вас есть пять шоколадок и вы решили раздать их пяти друзьям - каждому по одной. Задача - выяснить, сколько существует способов раздать эти шоколадки. Начинаем размышлять:</p>
24 <ul><li>первую шоколадку можно отдать одному из пяти друзей;</li>
24 <ul><li>первую шоколадку можно отдать одному из пяти друзей;</li>
25 <li>вторую - одному из четырёх друзей, потому что один уже получил свою шоколадку;</li>
25 <li>вторую - одному из четырёх друзей, потому что один уже получил свою шоколадку;</li>
26 <li>третью - одному из трёх, потому что двое уже наслаждаются своими шоколадками;</li>
26 <li>третью - одному из трёх, потому что двое уже наслаждаются своими шоколадками;</li>
27 <li>четвёртую - одному из двух;</li>
27 <li>четвёртую - одному из двух;</li>
28 <li>пятую - последнему другу.</li>
28 <li>пятую - последнему другу.</li>
29 </ul><p>Получается, что способов раздать первую шоколадку - 5, вторую - 4, третью - 3, четвёртую - 2, а пятую - всего 1. По правилам математики, чтобы выяснить общее количество всех вариантов, нужно перемножить их между собой. Ну а кто мы такие, чтобы с этими правилами спорить?</p>
29 </ul><p>Получается, что способов раздать первую шоколадку - 5, вторую - 4, третью - 3, четвёртую - 2, а пятую - всего 1. По правилам математики, чтобы выяснить общее количество всех вариантов, нужно перемножить их между собой. Ну а кто мы такие, чтобы с этими правилами спорить?</p>
30 <em>Изображение: Skillbox Media</em><p>Смотрим на выражение выше и понимаем: ведь оно идеально вписывается в определение факториала - произведение натуральных чисел от одного до n (в нашем случае n равно 5). Следовательно, это выражение можно коротко и изящно записать в виде факториала:</p>
30 <em>Изображение: Skillbox Media</em><p>Смотрим на выражение выше и понимаем: ведь оно идеально вписывается в определение факториала - произведение натуральных чисел от одного до n (в нашем случае n равно 5). Следовательно, это выражение можно коротко и изящно записать в виде факториала:</p>
31 <em>Изображение: Skillbox Media</em><p>Выходит, что всего способов раздать пять шоколадок пяти друзьям существует 120. Вот как может выглядеть один из них:</p>
31 <em>Изображение: Skillbox Media</em><p>Выходит, что всего способов раздать пять шоколадок пяти друзьям существует 120. Вот как может выглядеть один из них:</p>
32 <em>Иллюстрация: Катя Павловская для Skillbox Media</em><p>Конечно, в жизни вам вряд ли придётся считать количество способов раздать друзьям шоколадки. Но, например, в статистике, теории вероятностей, матанализе и программировании факториалы используют сплошь и рядом. Так что, если видите себя в будущем на матмехе или, на худой конец, в IT, то лучше познакомиться с ними хотя бы бегло.</p>
32 <em>Иллюстрация: Катя Павловская для Skillbox Media</em><p>Конечно, в жизни вам вряд ли придётся считать количество способов раздать друзьям шоколадки. Но, например, в статистике, теории вероятностей, матанализе и программировании факториалы используют сплошь и рядом. Так что, если видите себя в будущем на матмехе или, на худой конец, в IT, то лучше познакомиться с ними хотя бы бегло.</p>
33 <p>Так как факториалы используются в разных областях математики, свойств у них довольно много - каждая область привносит какие-то свои методы вычислений. Одно из свойств вы уже знаете:<strong>факториал - это всегда целое положительное число</strong>. Вот ещё несколько, которые стоит запомнить:</p>
33 <p>Так как факториалы используются в разных областях математики, свойств у них довольно много - каждая область привносит какие-то свои методы вычислений. Одно из свойств вы уже знаете:<strong>факториал - это всегда целое положительное число</strong>. Вот ещё несколько, которые стоит запомнить:</p>
34 <ul><li>Факториал нуля равен единице - 0! = 1.</li>
34 <ul><li>Факториал нуля равен единице - 0! = 1.</li>
35 <li>Факториал единицы тоже равен единице: 1! = 1.</li>
35 <li>Факториал единицы тоже равен единице: 1! = 1.</li>
36 <li>Рекурсия: n! = (n - 1)! × n. Это основное свойство факториалов, о нём мы чуть подробнее поговорим дальше.</li>
36 <li>Рекурсия: n! = (n - 1)! × n. Это основное свойство факториалов, о нём мы чуть подробнее поговорим дальше.</li>
37 </ul><p>Мы видим, что каждое свойство описывается какой-то формулой - и некоторые из этих формул могут быть весьма полезны. Они позволяют нам находить факториалы проще и быстрее, чем простым перемножением натуральных чисел. Разберём эти формулы тоже.</p>
37 </ul><p>Мы видим, что каждое свойство описывается какой-то формулой - и некоторые из этих формул могут быть весьма полезны. Они позволяют нам находить факториалы проще и быстрее, чем простым перемножением натуральных чисел. Разберём эти формулы тоже.</p>
38 <p>Чтобы вычислить факториал, не используя так много операций умножения, придумали формулу Стирлинга. Вот как она выглядит:</p>
38 <p>Чтобы вычислить факториал, не используя так много операций умножения, придумали формулу Стирлинга. Вот как она выглядит:</p>
39 <em>Изображение: Skillbox Media</em><p>Выглядит страшно, но на самом деле она очень полезная. Её используют, когда хотят приблизительно узнать факториал большого числа. Обычным способом это будет сделать сложно даже мощному компьютеру - например, попробуйте посчитать в онлайн-калькуляторе факториал числа 10 024 (спойлер: это может занять несколько часов и даже дней).</p>
39 <em>Изображение: Skillbox Media</em><p>Выглядит страшно, но на самом деле она очень полезная. Её используют, когда хотят приблизительно узнать факториал большого числа. Обычным способом это будет сделать сложно даже мощному компьютеру - например, попробуйте посчитать в онлайн-калькуляторе факториал числа 10 024 (спойлер: это может занять несколько часов и даже дней).</p>
40 Онлайн-калькулятор не справился с вычислением такого большого числа, как факториал 10 024<em>Скришнот:<a>"Контрольная работа РУ - калькуляторы онлайн"</a> / Skillbox Media</em><p>Давайте попробуем вычислить факториал числа 6 по этой формуле:</p>
40 Онлайн-калькулятор не справился с вычислением такого большого числа, как факториал 10 024<em>Скришнот:<a>"Контрольная работа РУ - калькуляторы онлайн"</a> / Skillbox Media</em><p>Давайте попробуем вычислить факториал числа 6 по этой формуле:</p>
41 <em>Изображение: Skillbox Media</em><p>Число<strong>e</strong>примерно равно 2,71, а <strong>π</strong> - 3,14. Подставляем их в выражение и получаем ответ:</p>
41 <em>Изображение: Skillbox Media</em><p>Число<strong>e</strong>примерно равно 2,71, а <strong>π</strong> - 3,14. Подставляем их в выражение и получаем ответ:</p>
42 <em>Изображение: Skillbox Media</em><p>Получили приближённое значение настоящего факториала, который равен 720. Но можно сделать ответ и более точным. Для этого нужно добавить больше знаков после запятой всем переменным - например, если взять 20 знаков, то ответ будет таким:</p>
42 <em>Изображение: Skillbox Media</em><p>Получили приближённое значение настоящего факториала, который равен 720. Но можно сделать ответ и более точным. Для этого нужно добавить больше знаков после запятой всем переменным - например, если взять 20 знаков, то ответ будет таким:</p>
43 <em>Изображение: Skillbox Media</em><p>Это уже больше похоже на правду. Хотя погрешность всё равно есть.</p>
43 <em>Изображение: Skillbox Media</em><p>Это уже больше похоже на правду. Хотя погрешность всё равно есть.</p>
44 <p>Рекуррентная формула позволяет вычислить факториал числа n, основываясь на факториале предыдущего числа - (n - 1). Выглядит она так:</p>
44 <p>Рекуррентная формула позволяет вычислить факториал числа n, основываясь на факториале предыдущего числа - (n - 1). Выглядит она так:</p>
45 <em>Изображение: Skillbox Media</em><p>В целом рекуррентная формула не приносит нам большой пользы, так как всё равно приходится вычислять факториал предыдущего числа. Если он равен какому-то большому числу (например, 100), то использование формулы теряет смысл - слишком уж много вычислений это потребует.</p>
45 <em>Изображение: Skillbox Media</em><p>В целом рекуррентная формула не приносит нам большой пользы, так как всё равно приходится вычислять факториал предыдущего числа. Если он равен какому-то большому числу (например, 100), то использование формулы теряет смысл - слишком уж много вычислений это потребует.</p>
46 <p>Рекуррентная формула основана на главном свойстве факториалов - рекурсии: n! = (n - 1)! × n. Это свойство особенно полезно при решении задач по комбинаторике: так мы можем быстро сокращать факториалы и упрощать выражения.</p>
46 <p>Рекуррентная формула основана на главном свойстве факториалов - рекурсии: n! = (n - 1)! × n. Это свойство особенно полезно при решении задач по комбинаторике: так мы можем быстро сокращать факториалы и упрощать выражения.</p>
47 <p>Однако рекуррентная формула хорошо подходит для алгоритмов - в частности, для программирования. Мы можем задать начальное значение: например, что 0! = 1 или 1! = 1, а затем считать следующие факториалы по формуле:</p>
47 <p>Однако рекуррентная формула хорошо подходит для алгоритмов - в частности, для программирования. Мы можем задать начальное значение: например, что 0! = 1 или 1! = 1, а затем считать следующие факториалы по формуле:</p>
48 <em>Изображение: Skillbox Media</em><p>Получим алгоритм для вычисления факториалов. Не очень эффективный, но простой.</p>
48 <em>Изображение: Skillbox Media</em><p>Получим алгоритм для вычисления факториалов. Не очень эффективный, но простой.</p>
49 <p>Давайте вычислим по этой формуле факториал числа 4. Сначала распишем рекуррентную формулу до базового значения - факториала числа 1:</p>
49 <p>Давайте вычислим по этой формуле факториал числа 4. Сначала распишем рекуррентную формулу до базового значения - факториала числа 1:</p>
50 <em>Изображение: Skillbox Media</em><p>Можно записать это и в сокращённом виде:</p>
50 <em>Изображение: Skillbox Media</em><p>Можно записать это и в сокращённом виде:</p>
51 <em>Изображение: Skillbox Media</em><p>Теперь последовательно подставляем значение факториала, которое мы уже знаем, и вычисляем результат:</p>
51 <em>Изображение: Skillbox Media</em><p>Теперь последовательно подставляем значение факториала, которое мы уже знаем, и вычисляем результат:</p>
52 <em>Изображение: Skillbox Media</em><p>Получили ответ - 24. Ничего сложного, просто перемножаем числа.</p>
52 <em>Изображение: Skillbox Media</em><p>Получили ответ - 24. Ничего сложного, просто перемножаем числа.</p>
53 <p>Кстати, всю эту формулу можно обернуть в реально работающую функцию на языке Python:</p>
53 <p>Кстати, всю эту формулу можно обернуть в реально работающую функцию на языке Python:</p>
54 def factorial(n): # Определяем функцию if n == 0 or n == 1: # Базовый случай return 1 else: # Рекуррентный случай return factorial(n-1) * n # Вызываем эту же функцию, но с меньшим аргументом print(factorial(4)) # Печатаем факториал 4 # Вывод: # 24<p>Можете попробовать запустить её в <a>онлайн-интерпретаторе</a>и посмотреть, как работает. Тут есть один нюанс: Python не даст вам посчитать факториал числа больше 998, так как у него есть ограничение на количество вызовов функции - в программировании это называется глубиной рекурсии.</p>
54 def factorial(n): # Определяем функцию if n == 0 or n == 1: # Базовый случай return 1 else: # Рекуррентный случай return factorial(n-1) * n # Вызываем эту же функцию, но с меньшим аргументом print(factorial(4)) # Печатаем факториал 4 # Вывод: # 24<p>Можете попробовать запустить её в <a>онлайн-интерпретаторе</a>и посмотреть, как работает. Тут есть один нюанс: Python не даст вам посчитать факториал числа больше 998, так как у него есть ограничение на количество вызовов функции - в программировании это называется глубиной рекурсии.</p>
55 <p>Чтобы быстро находить, чему равен факториал, можно запомнить или сохранить в заметки вот такую табличку. Она рассчитана всего на 12 чисел, но для большинства учебных задач этого хватит.</p>
55 <p>Чтобы быстро находить, чему равен факториал, можно запомнить или сохранить в заметки вот такую табличку. Она рассчитана всего на 12 чисел, но для большинства учебных задач этого хватит.</p>
56 1!12!23!64!245!1206!7207!50408!40 3209!362 88010!3 628 80011!39 916 80012!479 001 600<p>С теорией вроде разобрались - теперь попробуем решить несколько задач с факториалами, чтобы закрепить знания на практике.</p>
56 1!12!23!64!245!1206!7207!50408!40 3209!362 88010!3 628 80011!39 916 80012!479 001 600<p>С теорией вроде разобрались - теперь попробуем решить несколько задач с факториалами, чтобы закрепить знания на практике.</p>
57 <p><strong>Задача:</strong>перемножить два факториала.</p>
57 <p><strong>Задача:</strong>перемножить два факториала.</p>
58 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
58 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
59 <p>Сперва нужно вычислить значения факториалов, а затем перемножить полученные значения:</p>
59 <p>Сперва нужно вычислить значения факториалов, а затем перемножить полученные значения:</p>
60 <em>Изображение: Skillbox Media</em><p>Обратите внимание: во второй строке мы применили рекуррентную формулу, чтобы быстрее вычислить факториал числа 7.</p>
60 <em>Изображение: Skillbox Media</em><p>Обратите внимание: во второй строке мы применили рекуррентную формулу, чтобы быстрее вычислить факториал числа 7.</p>
61 <p><strong>Задача:</strong>вычесть из одного факториала другой.</p>
61 <p><strong>Задача:</strong>вычесть из одного факториала другой.</p>
62 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
62 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
63 <p>Используем тот же подход, что и в предыдущей задаче: сначала вычисляем факториалы, а затем получаем ответ на всё выражение.</p>
63 <p>Используем тот же подход, что и в предыдущей задаче: сначала вычисляем факториалы, а затем получаем ответ на всё выражение.</p>
64 <em>Изображение: Skillbox Media</em><p>Вроде бы ничего сложного, главное - не запутаться в умножении.</p>
64 <em>Изображение: Skillbox Media</em><p>Вроде бы ничего сложного, главное - не запутаться в умножении.</p>
65 <p><strong>Задача:</strong>умножить один факториал на другой:</p>
65 <p><strong>Задача:</strong>умножить один факториал на другой:</p>
66 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
66 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
67 <p>Вычисляем факториалы, потом перемножаем их значения:</p>
67 <p>Вычисляем факториалы, потом перемножаем их значения:</p>
68 <em>Изображение: Skillbox Media</em><p>Во второй строке мы воспользовались<a>таблицей выше</a>и быстро нашли значение факториала от числа 8.</p>
68 <em>Изображение: Skillbox Media</em><p>Во второй строке мы воспользовались<a>таблицей выше</a>и быстро нашли значение факториала от числа 8.</p>
69 <p><strong>Задача:</strong>сократить дробь и вычислить её значение.</p>
69 <p><strong>Задача:</strong>сократить дробь и вычислить её значение.</p>
70 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
70 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
71 <p>Здесь мы воспользуемся рекуррентной формулой для вычисления факториала и разложим верхний факториал на множители:</p>
71 <p>Здесь мы воспользуемся рекуррентной формулой для вычисления факториала и разложим верхний факториал на множители:</p>
72 <em>Изображение: Skillbox Media</em><p>В первой строке мы применили рекуррентную формулу два раза, а во второй - просто сократили одинаковые факториалы в числителе и в знаменателе.</p>
72 <em>Изображение: Skillbox Media</em><p>В первой строке мы применили рекуррентную формулу два раза, а во второй - просто сократили одинаковые факториалы в числителе и в знаменателе.</p>
73 <p><strong>Задача:</strong>сократить дробь.</p>
73 <p><strong>Задача:</strong>сократить дробь.</p>
74 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
74 <em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
75 <p>Хотя здесь нет конкретных чисел, но принцип решения остаётся таким же: используем рекуррентную формулу и сокращаем одинаковые значения в числителе и знаменателе.</p>
75 <p>Хотя здесь нет конкретных чисел, но принцип решения остаётся таким же: используем рекуррентную формулу и сокращаем одинаковые значения в числителе и знаменателе.</p>
76 <em>Изображение: Skillbox Media</em><p>Главное - не запутаться и правильно применить рекуррентную формулу.</p>
76 <em>Изображение: Skillbox Media</em><p>Главное - не запутаться и правильно применить рекуррентную формулу.</p>
77 <ul><li><strong>Факториал</strong> - это произведение всех натуральных чисел от 1 до данного числа. Например, факториал числа 5 будет равен 1 × 2 × 3 × 4 × 5 = 120.</li>
77 <ul><li><strong>Факториал</strong> - это произведение всех натуральных чисел от 1 до данного числа. Например, факториал числа 5 будет равен 1 × 2 × 3 × 4 × 5 = 120.</li>
78 <li>Его используют во многих областях науки - например, комбинаторике, теории вероятностей и математическом анализе.</li>
78 <li>Его используют во многих областях науки - например, комбинаторике, теории вероятностей и математическом анализе.</li>
79 <li>Помимо стандартной формулы для вычисления факториала можно использовать формулы Стирлинга и рекуррентную формулу.</li>
79 <li>Помимо стандартной формулы для вычисления факториала можно использовать формулы Стирлинга и рекуррентную формулу.</li>
80 <li>Формула Стирлинга нужна для того, чтобы посчитать факториал без большого числа операций умножения.</li>
80 <li>Формула Стирлинга нужна для того, чтобы посчитать факториал без большого числа операций умножения.</li>
81 <li>Рекуррентная формула позволяет вычислить факториал на основе предыдущего факториала.</li>
81 <li>Рекуррентная формула позволяет вычислить факториал на основе предыдущего факториала.</li>
82 </ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
82 </ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>