365・LibreOfficeなどに関するメモ2023-01-01(Gスプレッドシート)すべての約数を求めるGoogleスプレッドシートGoogleスプレッドシートで、数値のすべての約数を列挙する方法についてです。REDUCE/LAMBDA関数を使って、数値の約数をすべて求めることができます。画像では、B列に記録された各数値のすべての約数を求めています。具体的にはD3セルに次のような式を入力して下方にコピーしています。D3セル(下方にコピー)=TRANSPOSE(SORT(UNIQUE(REDUCE(1,SEQUENCE(SQRT(B3)),LAMBDA(a,b,IF(MOD(B3,b),a,{a;b;B3/b}))))))さしあたり「1」をaの初期値(配列)にしておき、「1から『B3の平方根(小数切捨)』までの整数の配列」をbとしています。あとはb(のぞれぞれ)がB3の約数であったら(B3をbで割った余りが0だったら)bとB3/b(いずれもB3の約数)をaの末尾に追加していきます。約数には重複するものが出るのでUNIQUEで重複を除き、ソートと転置を行って完了です。SEQUENCEで生成する配列については2からスタートして「SQRT(B3)-1」個にするのが正確ですが、式の短さを優先しています。約数の個数を求めるだけならソートや転置は要りませんので、次のようになります。365はデスクトップ版、LibreOfficeは記事作成時の安定バージョンを用いた結果を示しています。サイトポリシー等についてはこちらをご覧ください。(1)検索スポンサーリンク引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。