最高にドキュメントが書かれている
引用元:https://www.ioccc.org/2015/schweikhardt/prog.c
審査員・作者による説明:https://www.ioccc.org/2015/schweikhardt/index.html
コラッツ予想の数列を計算する。
$ gcc -Dtyp=uint64_t -o prog prog.c
$ ./prog 6
0000000000000006
0000000000000003 1
000000000000000A 2
0000000000000005 3
0000000000000010 4
0000000000000008 5
0000000000000004 6
0000000000000002 7
0000000000000001 8
入力も出力も16進数で行われることに注意。
コラッツ予想は、偶数なら2で割り、奇数なら3を掛けて1を足す、という処理を繰り返していくうちに1にたどり着く、という予想。 動作例に示した6の場合、6→3→10→5→16→8→4→2→1となる。 多倍長整数で計算を行う。
ドキュメントが非常に長く、700行ほどある。 guidelines.txtに書かれた審査プロセスにしたがって、この作品の特徴などをPRしている。 Cコードの静的・動的解析ツールをいろいろ適用した結果も書かれている。 MISRA Cのルールがどのように難読化に寄与したか、なども。
コード形状に特徴はない。 審査プロセスにC beautifierを適用するとあるので、あらかじめindentを適用しておいたとのこと。 1文字の変数名は古いので3文字。 基本的にタンパク質を構成するアミノ酸の3文字表記を採用している。 2の累乗以外のマジックナンバーを使わない、という制約も。