어떤 자연수가 세 개의 자연수의 제곱합으로 나타낼 수 있는지를 보여주기..
원래는 하나만 보여줘야하지만 그냥 다 보여주는 루틴 만들어놨음
LISP의 루프 구조하나는 확실히 쓰게됐다...

n^2 = a^2 + b^2 + c^2
원래는 하나만 보여줘야하지만 그냥 다 보여주는 루틴 만들어놨음
LISP의 루프 구조하나는 확실히 쓰게됐다...
(defun square (n)
(* n n))
(defun find3num (n)
(let ((sq (floor (sqrt n))))
(dotimes (i (+ sq 1))
(let ((sq1 (floor (sqrt (- n (square i))))))
(dotimes (j (+ sq1 1))
(let ((sq2 (floor (sqrt (- n (square i) (square j))))))
(dotimes (k (+ sq2 1))
(cond ((= (+ (square i) (square j) (square k)) n)
(format t "~A ~A ~A ~%" i j k))))))))))

댓글 없음:
댓글 쓰기