Pythagorean quadruples: Difference between revisions
Content deleted Content added
→=={{header|Racket}}==: stub added |
|||
Line 565: | Line 565: | ||
{{trans|Python}} |
{{trans|Python}} |
||
<lang racket> |
<lang racket>#lang racket |
||
</lang> |
|||
(require data/bit-vector) |
|||
(define (quadruples top) |
|||
(define top+1 (add1 top)) |
|||
(define 1..top (in-range 1 top+1)) |
|||
(define r (make-bit-vector top+1)) |
|||
(define ab (make-bit-vector (add1 (sqr (* top 2))))) |
|||
(for* ((a 1..top) (b (in-range a top+1))) (bit-vector-set! ab (+ (sqr a) (sqr b)) #t)) |
|||
(for/fold ((s 3)) |
|||
((c 1..top)) |
|||
(for/fold ((s1 s) (s2 (+ s 2))) |
|||
((d (in-range (add1 c) top+1))) |
|||
(when (bit-vector-ref ab s1) |
|||
(bit-vector-set! r d #t)) |
|||
(values (+ s1 s2) (+ s2 2))) |
|||
(+ 2 s)) |
|||
(for/list ((i (in-naturals 1)) (v (in-bit-vector r 1)) #:unless v) i)) |
|||
(define (report n) |
|||
(printf "Those values of d in 1..~a that can't be represented: ~a~%" n (quadruples n))) |
|||
(report 2200)</lang> |
|||
{{out}} |
{{out}} |
||
<pre>Those values of d in 1..2200 that can't be represented: (1 2 4 5 8 10 16 20 32 40 64 80 128 160 256 320 512 640 1024 1280 2048)</pre> |
|||
<pre> |
|||
</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |