ThreeNPlus1 form solution

<?php
/*
 * Created on Feb 13, 2008
 *
 * In class example.
 * Write a PHP script that computes the 3N+1 problem. For N > 0,
 *  generate a sequence of numbers using the following simple rules:
 *  if N is even, divide it by 2; if N is odd, multiply it by 3 and add 1.
 *  The sequence always converges to 1, although the length of the sequence
 *  varies depending on the choice of N.
 * 
 *  This version uses a simple HTML <FORM> element to get user's input.
 */
?>
<HTML>
  <HEAD>
    <TITLE>3N + 1 Problem</TITLE>
  </HEAD>
  <BODY>
    <H4>The 3N + 1 Problem</h4>
    <?php
       // $_SERVER['PHP_SELF'] returns the name of this file, which
       //  serve as the handler for this form.
       $self = htmlentities($_SERVER['PHP_SELF']);

       // $_GET['N'] gets the value from the form element named 'N'.
       // The htmlentities() function cleans up the input string as a security measure.
       $n = htmlentities($_GET["N"]); // 
       if ($n == '') {      // If $n has not been set, display the form.
       echo ('
            <form action="'.$self.'" method="GET">
            <label>N: <input type="text" name="N" /></label>
            <input type="submit" value="go!" />
            </form>');
       }
       else {               // Otherwise, display the 3N+1 sequence
           echo "N= $n<BR>";
           while ($n > 1) {        // While n is greater than 1
               echo "$n<BR>";      // Print it then either
               if ($n % 2 == 0) {
                   $n = $n / 2;    //  Divide it by 2
               }
               else {
                   $n = 3 * $n + 1;  // Or multiply 3N+1
               }
           }
       }

    ?>
  </BODY>
</HTML>