FRACTRAN
同様に、FRACTRAN「減算器」を作ることができる。さらに、減算を繰り返すことで、以下の「商とあまり」のアルゴリズムを作ることもできる。
FRACTRANプログラムに書き出すと、以下のようになる。
入力2311に対して、このプログラムは57を出力する。ここに、n = qd + r かつ 0 ≤ r < dである。
↑ Guy 1983, p. 26; Conway & Guy 1996, p. 147
↑ Guy 1983, p. 33
↑ Havil 2007, p. 176
↑ John Baez, Puzzle #4, The n-Category Café
Guy, Richard K. (1983). “Conway's Prime Producing Machine”. Mathematics Magazine (Taylor & Francis) 56 (1): 26–33. doi:10.1080/0025570X.1983.11977011. https://www.tandfonline.com/doi/abs/10.1080/0025570X.1983.11977011.
Conway, John H. (1987). “FRACTRAN: A simple universal programming language for arithmetic”. Open Problems in Communication and Computation (Springer-Verlag New York, Inc.
ここで、1つのループにState制御インジケータは第一のフラグ(v11)と第二のフラグ(v13)の2つが必要となることに留意されたい。なぜなら、それぞれのインジケータは評価されると消費されるため、「現在のStateを継続せよ」と言うために第二のインジケータが必要となるからである。この第二のインジケータは、次の命令で第一のインジケータに還元され、ループが継続する。
乗算アルゴリズムの表にFRACTRAN Stateインジケータと命令を追加すると以下のようになる。
FRACTRAN命令を書き出すとき、最後にAのStateの命令が必要になる。AのStateにはインジケータがないからである。Stateインジケータが設定されていないのが既定のStateである。ゆえに、乗算器のFRACTRANプログラムは以下のようになる。
入力23に対してこのプログラムは5を出力する。