Давайте рассмотрим пример: 10! = 2 ^ 8 * 3 ^ 4 * 5 ^ 2 * 7 ^ 1. Я вычислил это, вычисляя факторы каждого числа от 2 до 10:
2: 2
3: 3
4: 2,2
5: 5
6: 2,3
7: 7
8: 2,2,2
9: 3,3
10: 2,5
Тогда я просто посчитал каждый фактор. Есть восемь 2 (1 в 2, 2 в 4, 1 в 6, 3 в 8 и 1 в 10), четыре 3 (1 в 3, 1 в 6 и 2 в 9), два 5 (1 в 5 и 1 в 10) и один 7 (в 7).
С точки зрения написания программы, просто сохраните массив счетчиков (он должен иметь размер, равный квадратному корню из наибольшего факториала, который вы хотите разложить), и для каждого числа от 2 до факториала добавьте подсчет его факторов в массив счетчиков.
Это помогает?