Finden der optimalen Spalten- und Zeilengröße für eine Tabelle mit n Elementen und einem bestimmten Bereich für ihren Anteil

Ich suche nach einer optimalen Möglichkeit, eine Tabelle aus n Elementen zu erstellen, sodass im Idealfall keine leeren Zellen vorhanden sind, aber gleichzeitig der Anteil der Tabellendimensionen Spalten / Zeilen so nahe wie möglich bei 1 liegt.

Natürlich, wenn n eine quadratische Zahl ist, ist es einfach, da dann

cols = rows = sqrt( n );

Wenn n eine Primzahl ist, ist es auch klar, dass es leere Zellen geben wird. Meine derzeitige Vorgehensweise lautet:

rows = floor( sqrt(n) );
cols = ceil( n / rows  );

Für alle anderen Fälle ist mein Plan, die Primfaktoren von n zu erhalten und dann alle möglichen Permutationen nach jenen zu durchsuchen, deren Kombination Proportionen hat, die 1 am nächsten kommen.

Also meine Frage ist: gibt es einen besseren Weg, dies zu tun? Oder gibt es zumindest eine Möglichkeit, nicht jede mögliche Kombination der Primfaktoren testen zu müssen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage