 (defun integer-sqrt (num)
   (if (zerop num)
     0
     (labels ((next-approx (curr)
                           (truncate (/ (+ curr (truncate (/ num curr))) 2)))
              (int-sqrt (n n1)
                        (if (>= n1 n)
                          n
                          (int-sqrt n1 (next-approx n1)))))
       (let ((first-aprox (1+ (truncate (/ num 2)))))
         (int-sqrt first-aprox (next-approx first-aprox))))))

(integer-sqrt 26)