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 notequal (n 'div' 2) * 2; integer count; count := 0; do: if odd (n) then n := 3 * n + 1 else n := n 'div' 2; count := count + 1; if n notequal 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 notgreater max then goto do; vprint (n, val); max := val; end; vprint ("...\ndone.") end