理想的には空のセルがないように、n 個の要素からテーブルを作成する最適な方法を探していますが、同時に、テーブルの次元の列/行の比率ができるだけ 1 に近くなります。
もちろん、n が平方数の場合は簡単です。
cols = rows = sqrt( n );
n が素数の場合、空のセルがあることも明らかなので、これを処理する現在の方法は次のとおりです。
rows = floor( sqrt(n) );
cols = ceil( n / rows );
他のすべてのケースでは、私の計画は、n の素因数を取得し、組み合わせの比率が 1 に最も近いものをすべての可能な順列で検索することです。
私の質問は次のとおりです。これを行うためのより良い方法はありますか? または、少なくとも素因数のすべての可能な組み合わせをテストする必要がない方法はありますか?