illegal function call in 1980s

1980年代のスポーツノンフィクションについてやさぐれる文章を書きはじめました。最近の関心は猫のはなちゃんとくるみちゃんです。

新規感染者数pを(a+b)(a-b)に因数分解してくれるPython

(12/29, 8:25)こっちのが圧倒的に速いですね。手早いし。

f:id:cj3029412:20201229200643p:plain

1から100までをseedにして(a+b)(a-b)を展開したa^2-b^2を求めて、そこに対象の数値がgrepで引っかかるかを見ています。

*

(12/29, 6:54追記)当初公開のものにバグがありました。修正と差し替えを行いました。

*

新規感染者数pを(a+b)(a-b)に因数分解してくれるPythonです。これまでは勘と手計算で立式してブックマークコメントやツイートをしていたのですが、残念ながら新規感染者数がかなり増えてきたため計算機に頼ることにしました。

もちろんpの意味が新規感染者数である必要はありません。

$ nano ./tokyosqr.py

f:id:cj3029412:20201229065437p:plain

$ python3 ./tokyosqr.py

input number: 2021
45^2-2021=4=2^2
(45+2)(45-2)=2021

input number: 889
Unfortunately not found in the specified range.

入力値pに対し向こう+100までのチェックを行います。

2021はうまく見つかった場合の出力です。最初に見つかったところで探索を打ち切ります。一方の889は889+100=999まで探索を行い、889は(a+b)(a-b)の形にはならなかったよという結果を表示しています――追記) バグです。正しくは(67+60)(67-60)が求められます。

ダサloopの典型ですが、さらさらっと書けてしまうのはPythonのよさかと思います。