Интерестная задачка, спортивное программирование, разобраться?
Если тесты делали не с любовью, то пройдет такой вариант. Можно сравнивать столбцы по суммам логарифмов чисел в них. Надо быть аккуратным с отрицательными числами и нулем, но это детали. Вычисления лучше делать в long double (для C/C++). Вероятно, если подумать, то окажется что это предполагаемое решение.
Задача почему-то не открылась, поэтому решаю задачу по вашему условию.

Раз таблица N*M, то максимум элементов в столбце = 20 (т.к. 1<=M<=20).

Вообще можно динамически раскладывать число на множители (не обязательно простые), затем просто сравнивать их количество и остаточные коэффициенты.

В принципе, можно грамотно написать длинную арифметику по основанию 109, которая будет быстро работать.