Я ищу оптимальный способ создания таблицы из n элементов, чтобы в идеале не было пустых ячеек, но в то же время пропорция столбцов / строк измерений таблицы становилась как можно ближе к 1.
Конечно, если n - квадратное число, то с тех пор это легко
cols = rows = sqrt( n );
Если n - простое число, также ясно, что будут пустые ячейки, поэтому мой текущий способ справиться с этим:
rows = floor( sqrt(n) );
cols = ceil( n / rows );
Для всех остальных случаев мой план состоит в том, чтобы получить простые множители n, а затем найти во всех возможных перестановках те, чья комбинация имеет пропорции, наиболее близкие к 1.
Итак, мой вопрос: есть ли лучший способ сделать это? Или, по крайней мере, есть способ не проверять каждую возможную комбинацию основных факторов?