Special pythagorean triplet: Difference between revisions

→‎{{header|Common Lisp}}: Added Common Lisp version
(added FreeBASIC)
(→‎{{header|Common Lisp}}: Added Common Lisp version)
Line 74:
a * b * c = 31875000
</pre>
 
=={{header|Common Lisp}}==
This version utilizes SCREAMER which provides constraint solving.
 
<lang lisp>
(ql:quickload "screamer")
(in-package :screamer-user)
(defun special-pythagorean-triple (sum)
(let* ((a (an-integer-between 1 (floor sum 3)))
(b (an-integer-between (1+ a) (floor (- sum a) 2)))
(c (- sum a b)))
(when (< c b) (fail))
(if (= (* c c) (+ (* a a) (* b b)))
(list a b c (* a b c))
(fail))))
 
(print (one-value (special-pythagorean-triple 1000)))
;; => (200 375 425 31875000)
</lang>
 
=={{header|F_Sharp|F#}}==
Line 450 ⟶ 469:
Real: 00:00:03.704
</pre>
 
=={{header|FreeBASIC}}==
<lang freebasic>' version 06-10-2021
Anonymous user