Среди чисел 1, 2,...,n количество чисел делящихся на простое число p равно [n/p], где [...] - целая часть числа. Т.к. среди них есть числа делящиеся на p², p³,..., то количество чисел среди них, которые делятся на p только в первой степени равно [n/p]-[n/p²], т.е. мы из всех делящихся на р вычли все, длящиеся на р². Аналогично, количество чисел в ряду 1,...,n делящихся ровно на p² и не делящихся на p в степенях больших 2, равно [n/p²]-[n/p³]. Для степени p³ таких чисел будет [n/p³]-[n/p⁴] и т.д... Таким образом, количество чисел, у которых в разложении на простые p входит в разложение ровно в k-ой степени равно [n/p^k]-[n/p^(k+1)].
Значит в разложении n! на простые множители простое p входит в степени
([n/p]-[n/p²])+2([n/p²]-[n/p³])+3([n/p³]-[n/p⁴])+...=[n/p]+[n/p²]+[n/p³])+...
Понятно, что с некоторой степени все целые части [n/p^k] будут равны 0, т.к.n/p^k станет меньше 1 при больших k (а именно, при k>[ln(n)/ln(p)].).
Теперь, чтобы посчитать сколькими нулями оканчивается число n! нужно посчитать на какую степень десятки оно делится. Поскольку 10=2*5, нужно узнать в каких степенях 2 и 5 входят в разложение n! на простые множители и из этих степеней выбрать минимальную. Согласно доказанной формуле, очевидно, что степень двойки будет больше степени пятерки, поэтому достаточно посчитать степень пятерки.
Итак,
а) у числа 10! в разложении на простые 5 входит в степени
[10/5]+[10/5²]+...=2+0+...=2, т.е. 10! заканчивается 2 нулями.
б) у числа 50! в разложении на простые 5 входит в степени
[50/5]+[50/5²].=10+2=12, т.е. 50! заканчивается 12 нулями.
в) у числа 100! в разложении на простые 5 входит в степени
[100/5]+[100/5²].=20+4=24, т.е. 100! заканчивается 24 нулями.