


------------------------------

REGISTER MACHINES - 3

  (define (prime? n)
    (define (loop div stop)
      (cond ((> div stop) #T)
            ((= 0 (remainder n div)) #F)
            (else (loop (+ 2 div) stop))))
    (cond ((= n 2) #T)
          ((= 0 (remainder n 2)) #F)
          (else (loop 3 (sqrt n)))))

    The missing line for the register machine below,
    designed to test for primality:

        (define-machine prime?
          (registers n div stop val temp)
          (controller
            (assign val (const #f))
            (test (op =) (reg n) (const 2))
            (branch (label is-prime))
            (assign temp (op remainder) (reg n) (const 2))
            (test (op zero?) (reg temp))
            (branch (label prime-done))
            (assign stop (op sqrt) (reg n))
            (assign div (const 3))
          loop
            (test (op >) (reg div) (reg stop))
            (branch (label is-prime))
            (assign temp (op remainder) (reg n) (reg div))
            (test (op zero?) (reg temp))
            (branch (label prime-done))
            ****
            (goto (label loop))
          is-prime
            (assign val (const #t))
          prime-done))


            Answer: (assign div (op +) (reg div) (const 2))


________________________________________


MISCELLANEOUS - 1

    The building number for Prof. Boning's office.


                        Answer: Building 39 (Room 39-567)

          ----------------------------------------

MISCELLANEOUS - 2

    Independent discovery or creation enables one to 
    avoid infringing on this kind of intellectual property
    protection.


                        Answer: Copyright or trade secret

          ----------------------------------------

