blog.monophile.net

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

各種環境の構築と管理を承ります。

  • 仮想環境: Openstack, GCP, AWS, Azure, ...
  • アプリケーション: WordPress, GitLab, Redmine, ...

List

素因数分解をしjson形式で出力

いきさつ

Webブラウザ上で素因数分解をする必要があったのですが、 ライブラリがなかったので、予め計算しておいたデータを読み込むことで対処しました。 そのときに書いたシェルスクリプトを以下に。

pfact.sh

動作環境はLinuxを想定していますが、Macでもfactorがインストールされていれば使えます。 MacPortsでインストールするとgfactorという名前かもしれません。

#! /bin/bash
SED_PRG='s/^[0-9]*/"&"/g; s/: /:[/g; y/ /,/; s/$/],/g; '
echo "{";
echo '"2":[2],'
seq 3 ${1} | factor | sed -e ${SED_PRG}
echo '"default":[]'
echo "}"

exec

以下のようにコマンドを打つとjsonが吐出されます。

$ ./pfact.sh 20
{
"2":[2],
"3":[3],
"4":[2,2],
"5":[5],
"6":[2,3],
"7":[7],
"8":[2,2,2],
"9":[3,3],
"10":[2,5],
"11":[11],
"12":[2,2,3],
"13":[13],
"14":[2,7],
"15":[3,5],
"16":[2,2,2,2],
"17":[17],
"18":[2,3,3],
"19":[19],
"20":[2,2,5],
"default":[]
}