Написать программу, которая для заданного n определяет, сколько нулей стоит в конце числа n! . (предполагается, что n достаточно велико и непосредственное вычисление функции n! умножением невозможно).
200
268
Ответы на вопрос:
Заметим, что число нулей в записи числа = максимальная степень десятки, на которую делится число = минимальная из степеней двойки и пятерки, входящих в разложение на простые множители этого числа. [ первое равенство очевидно, второе можно доказать от противного] например, 7500 имеет на конце 2 нуля: 7500 = 2^2 * 3 * 5^4 - минимальная из степеней двойки и пятерки как раз 2. в разложении числа n! на простые множители пятерок всегда не больше, чем двоек: если в выражении n! =1*2*3**n есть множитель вида m*5^k, то есть и множитель m*2^k - хотя бы потому, что второе число меньше первого, а факториал - это произведение всех чисел меньше заданного. поэтому при разложении на простые множители степень двойки хотя бы степень двойки. используя наблюдение из первого параграфа, получаем: число нулей в конце десятичной записи числа n! совпадает с числом пятерок в разложении числа n! на простые множители. остается найти число пятерок в разложении. проще всего это понять на примере. 26! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * 18 * 19 * 20 * 21 * 22 * 23 * 24 * 25 * 26 число чисел, делящихся на 5, среди первых 26 чисел равно пяти (это 5, 10, 15, 20, 25). это число можно найти, округлив вниз результат от деления 26/5. если подумать, можно понять, что в разложении 26! на простые множители 5 встретится не 5 раз - мы забыли учесть число 25, которое даст не одну пятерку, а две. и вообще, в ответ сомножитель что-то*5^n будут давать n пятерок. итого ответ для произвольного n: [n/5] + [n/5^2] + [n/5^3] + алгоритм: c = 0 пока [n/5] > 0: увеличиваем c на [n/5] n = [n/5] вывод c питон-3: n = int( c = 0 while n//5 > 0: c += (n//5) n = n//5 print(c)
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
frazka22831.07.2022 07:28
-
Aloyna11111.02.2021 23:40
-
s0f2104.02.2021 23:22
-
buh6416.01.2022 12:39
-
1Кто1то120.12.2020 21:12
-
rembo1505.11.2022 05:16
-
Reshebnikov24.11.2020 00:34
-
Аврораttt378308.12.2022 15:36
-
KOnyaHA19.01.2020 02:42
-
mido30308.02.2021 06:01
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.