begin comment 321.a60: oct '90 Erik Schoenfelder This is the 0. Start with a natural number n. 1. If n is odd, set n to be 3 * n + 1 If n is even, set n to be n / 2 Repeat step 1 until n is equal 1. 2. Print the number of repetitons. fun. And: Who knows, if this termimates for any n... ; integer procedure doit (n); value n; integer n; begin boolean procedure odd (x); value x; integer x; odd ≔ n ≠ (n ÷ 2) × 2; integer count; count ≔ 0; do: if odd (n) then n ≔ 3 × n + 1 else n ≔ n ÷ 2; count ≔ count + 1; if n ≠ 1 then goto do; doit ≔ count; end; integer i, n, val, max, NN; NN ≔ 12; vprint (“Hi!\n n iterations\n”); for i ≔ 1 step 1 until NN do vprint (i, doit (i)); vprint (“...”); vprint (“\nnow looking for maxima:”); vprint (“\n n iterations\n”); n ≔ 0; max ≔ -1; for i ≔ 1 step 1 until NN do begin do: n ≔ n + 1; val ≔ doit (n); if val ⩽ max then goto do; vprint (n, val); max ≔ val; end; vprint (“...\ndone.”) end