引用元:https://www.ioccc.org/2001/ollinger.c
審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/2001/ollinger.hint
動作
セルオートマトンで素数列挙。
$ gcc -o ollinger ollinger.c
$ ./ollinger 1000
0
0\
2 1.\
3 1\ \
0\. \
5 1/\ \
0\;\ \
7 1:.0\ \
0/.0.\ \
0; 10 \ \
0|/\0; \ \
11 1/\.0|1 \ \
0\/| |1/ \ \
13 1:\| |\1. \ \
0//| \:11 \ \
0;\| /|.0/ \ \
0|/|/ : 1. \ \
17 1/\:|.|.11 \ \
0\/|; : 00/ \ \
19 1:\: ;|0 1. \
0//|./||.11 \
0;\:/ :0 00/ \
0|/:|.;11 1.
23 1/;|;.1/0 11
0;/:.\|0..00/
0:;: /|11 .1.
0//|/ |00 .\1
0;\:| | 1. \;/
0|/|\ | 11 \1
29 1/\| \| 00/ 1;/
0\/| /| 1. /01
31 1:\|/ | 11///1/
0//:| | 011 11
0;;|\ | /;0/ 00/
0:/| \| / |0. 1.
0/\| /|/ |1\ 11
0\/|/ :| |0\\ 00/
37 1:\:|.|\ |1. \ 1.
0//|; | \ |11 \11
0;\: \| \|00/ 100/
0|/| /| /| 1. \;1.
41 1/\|/ | / | 11 \\1
0\/:| |/ | 00/ \;/
43 1:;|\ :| | 1. \1
0//| ;|\ | 11 1;/
0;\|./| \ | 00/ /01
0|/:/ | \| 1. ///1/
47 1/;:| | /| 11/ 11
0;/|\ | / | 011 00/
0:\| \|/ | /;0/ 1.
0//| /:| | / |0. 11
0;\|/.|\ | / |1\ 00/
0|/:: | \ |/ |0\\ 1.
53 1/;:\ | \:| |1. \ 11
0;/| \| /|\ |11 \ 00/
0:\| /| / | \ |00/ \ 1.
0//|/ |/ | \ | 1. \11
0;\:| :| | \| 11 100/
0|/|\.|\ | /| 00/ \;1.
59 1/\|.\| \ | / | 1. \\1
0\/: /| \| / | 11 \;/
61 1:;|/ | /|/ | 00/ \1
0//:| | / :| | 1. 1;/
0;;|\ |/ .|\ | 11 /01
0:/| \:|. | \ | 00/ ///1/
0/\| /|; | \ | 1. / 11
0\/|/ : \ | \| 11/ 00/
67 1:\:|.| \| /| 011 1.
0//|; | /| / | /;0/ 11
0;\: \| / | / | / |0. 00/
0|/| /|/ |/ | / |1\ 1.
71 1/\|/ :| :| | / |0\\ 11
0\/:|.|\ .|\ |/ |1. \ 00/
73 1:;|; | ; | \ :| |11 \ 1.
0//: \|. \| \.|\ |00/ \ 11
0;;| /: /| .\| \ | 1. \ 00/
0:/|/.| / | . /| \ | 11 \ 1.
0/\:: |/ |. / | \ | 00/ \11
0\/:\ :| : / | \| 1. 100/
79 1:;| ;|\ .|/ | /| 11 \;1.
0//|./| ; :| | / | 00/ \\1
0;\:/ |. ;|\ | / | 1. \;/
0|/:| : ./| \ | / | 11 \1
83 1/;|\.|./ | \ |/ | 00/ 1;/
0;/|.\:/ | \:| | 1. /01
0:\: /:| | /|\ | 11 ///1/
0//|/.|\ | / | \ | 00/ / 11
0;\:: | \ | / | \ | 1. / 00/
0|/:\ | \|/ | \ | 11/ 1.
89 1/;| \| /:| | \| 011 11
0;/| /| /.|\ | /| /;0/ 00/
0:\|/ |/. | \ | / | / |0. 1.
0//:| :: | \ | / | / |1\ 11
0;;|\.:\ | \| / | / |0\\ 00/
0:/|.;| \ | /|/ | / |1. \ 1.
0/\:./| \| / :| |/ |11 \ 11
0\/:/ | /| / .|\ :| |00/ \ 00/
97 1:;:| | / |/ . | \ .|\ | 1. \ 1.
0//|\ |/ :|. | \. | \ | 11 \ 11
0;\| \:| .|; | .\ | \ | 00/ \ 00/
0|/| /|\. : \ | . \| \ | 1. \ 1.
101 1/\|/ |.\.| \ |. /| \ | 11 \11
0\/:| : .\| \: / | \| 00/ 100/
103 1:;|\.|. /| /| / | /| 1. \;1.
解説
左側は素数、右側はオートマトン。
左上、真上、右上の3セルの状態から次の行のセルが決まる、9状態の1次元セルオートマトン。各状態をいい感じに01\|/:;.
と空白の9文字で表現している(と思う)。オートマトン自体はKorec 1998が提案しているもので、ベースはFischer 1965とのこと。
IOCCC審査員のFAQの「見飽きてるネタはありますか?」に対して「素数列挙や状態機械」という回答があったので、その2つを組み合わせたとのこと。