Best utility

最高のツール

受賞者:Ilya Kurdyukov

引用元:https://www.ioccc.org/2020/kurdyukov1/prog.c

審査員・作者による説明:https://www.ioccc.org/2020/kurdyukov1/index.html

動作

MD5の計算。

$ gcc -o prog prog.c

$ ./prog < prog.c
72b77b046d302556e6b3408beb88603d

$ md5sum prog.c
72b77b046d302556e6b3408beb88603d  prog.c

解説

コード形状は円。 ポイントは、MD5計算のコードをどのくらい小さくできるか。 MD5の数表は直接コードにもたせるには巨大だが、sin関数をベースに作られているので、実行時に生成できる。 ただし浮動小数点数は再現性に難があるので使わない方針で書かれている。