   d = new LongInt 3 * 5 * 7 * 11 * 13 * 17 * 19 * 23 * 29 * 31
   log "#{c} gcd #{d} = #{c.gcd d} (expected #{29 * 31})"
   log ""
+
+  e = new CheckedInt(5).pow 5
+  log "5**5 = #{e}"
+  log "class of 5**5 is #{e.constructor.name}"
+  f = new CheckedInt(5).pow 6
+  log "5**6 = #{f}"
+  log "class of 5**6 is #{f.constructor.name}"

  @make: (x) ->
    if x instanceof LongInt
      x
    else if typeof x == 'number'
      new LongInt x
    else

exports.LongInt = LongInt

if quicktest
  a = new CheckedInt 9950
  log "a = #{a}"
  a2 = a['*'] a
  log "a * a = #{a2}"
  a3 = a2['*'] a
  log "(#{a}**3 + 1) / #{a}**2 = #{a3.plus(1).div a2} (#{a3.plus(1).mod a2})"
  log ""
