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

Мне нужно написать программу, которая выполняет операцию над матрицей целых чисел. Матрицу следует размещать в динамической памяти. Размер матрицы указывает пользователь после запуска программы. Матрица заполняется случайными числами. Программа выводит исходную матрицу на экран, осуществляет операцию (назовем характеристикой столбца квадратный корень из произведения элементов столбца. Расположить столбцы в порядке возрастания их характеристик), после чего выводит преобразованную матрицу на экран.