blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

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

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

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

いきさつ

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

sympyを使うのでpipでインストールしておく。

$ pip3 install sympy

インストールできたら、python3で以下を実行する。

import sympy
import json

max_num = 64
p = { i: sympy.factorint(i) for i in range(max_num) }
print(json.dumps(p, indent=4, sort_keys=True))

すると以下のようにjsonの出力を得ます。

{
    "0": {
        "0": 1
    },
    "1": {},
    "2": {
        "2": 1
    },
    "3": {
        "3": 1
    },
    "4": {
        "2": 2
    },
    "5": {
        "5": 1
    },
    "6": {
        "2": 1,
        "3": 1
    },
    "7": {
        "7": 1
    },
    "8": {
        "2": 3
    },
    "9": {
        "3": 2
    },
    "10": {
        "2": 1,
        "5": 1
    },
    "11": {
        "11": 1
    },
    "12": {
        "2": 2,
        "3": 1
    },
    "13": {
        "13": 1
    },
    "14": {
        "2": 1,
        "7": 1
    },
    "15": {
        "3": 1,
        "5": 1
    },
    "16": {
        "2": 4
    },
    "17": {
        "17": 1
    },
    "18": {
        "2": 1,
        "3": 2
    },
    "19": {
        "19": 1
    },
    "20": {
        "2": 2,
        "5": 1
    },
    "21": {
        "3": 1,
        "7": 1
    },
    "22": {
        "2": 1,
        "11": 1
    },
    "23": {
        "23": 1
    },
    "24": {
        "2": 3,
        "3": 1
    },
    "25": {
        "5": 2
    },
    "26": {
        "2": 1,
        "13": 1
    },
    "27": {
        "3": 3
    },
    "28": {
        "2": 2,
        "7": 1
    },
    "29": {
        "29": 1
    },
    "30": {
        "2": 1,
        "3": 1,
        "5": 1
    },
    "31": {
        "31": 1
    }
}