Collatzの問題

出力欄:

やっていることは,偶数なら2で割り,奇数なら3倍して1を加えることを繰り返しているだけです。

function collatz() {
  let x = parseInt(document.getElementById("input").value);
  let s = "";
  while (x > 1) {
    s += x + " → ";
    if (x % 2 == 0) {
      x = x / 2;
    } else {
      x = 3 * x + 1;
    }
  }
  s += x + " 終了";
  document.getElementById("output").textContent = s;
}

これが無限ループにならずに1に落ち着くことはまだ証明されていませんが,実験的には確からしいようです。