Localizando o tamanho ideal de coluna e linha para uma tabela com n elementos e um determinado intervalo para sua proporção
Estou procurando uma maneira ideal de criar uma tabela a partir de n elementos para que, idealmente, não haja células vazias, mas ao mesmo tempo a proporção das dimensões / colunas das tabelas da tabela se torna o mais próximo possível de 1.
Claro que se n é um número quadrado, é fácil desde então
cols = rows = sqrt( n );
Se n é um número primo, também está claro que haverá células vazias, então minha maneira atual de lidar com isso é:
rows = floor( sqrt(n) );
cols = ceil( n / rows );
Para todos os outros casos, meu plano é obter os fatores primos de n e, em seguida, procurar todas as permutações possíveis para aqueles cuja combinação tenha proporções mais próximas de 1.
Então, minha pergunta é: existe uma maneira melhor de fazer isso? Ou há pelo menos uma maneira de não ter que testar todas as combinações possíveis dos fatores primos?