最高のワンライナー
引用元:https://www.ioccc.org/1995/schnitzi/schnitzi.orig.c
審査員・作者による説明:https://www.ioccc.org/1995/schnitzi/index.html
因数を列挙する。
$ gcc -o schnitzi schnitzi.c
$ ./schnitzi 24
2
3
4
6
8
12
24
Floating point exception
Floating point exceptionは仕様。詳しくは解説で。
96バイトの短さもさながら、やり方がおもしろい。
割る数nごとにfork()を行い、n /= !(atoi(argv[1])%n)を計算する。
問題の数がnで割り切れるときこの文は特になにもせず(n /= 1をやるだけ)、プログラムはnを表示して終わる。
割り切れないときゼロ除算を引き起こし、シグナル終了(Floating point exception)するので、nの表示は行われない。