Find squares n where n+1 is prime: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
Dr-neptune (talk | contribs) (added racket example) |
||
Line 721: | Line 721: | ||
1 4 16 36 100 196 256 400 576 676 |
1 4 16 36 100 196 256 400 576 676 |
||
done... |
done... |
||
</pre> |
|||
=={{header|Racket}}== |
|||
<syntaxhighlight lang="racket"> |
|||
#lang racket |
|||
(require racket) |
|||
(define (find-subprime-squares up-to) |
|||
(let rc ([curr-num 1] |
|||
[found '()]) |
|||
(let ([n-sq (* curr-num curr-num)]) |
|||
(cond [(>= n-sq up-to) (reverse found)] |
|||
[(prime? (add1 n-sq)) (rc (add1 curr-num) (cons n-sq found))] |
|||
[else (rc (add1 curr-num) found)])))) |
|||
(define (prime? n) |
|||
(let iter ([counter 2]) |
|||
(cond [(eq? n 1) #f] |
|||
[(<= (expt counter 2) n) |
|||
(if (zero? (remainder n counter)) |
|||
#f |
|||
(iter (add1 counter)))] |
|||
[else #t]))) |
|||
(find-subprime-squares 1000) |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
'(1 4 16 36 100 196 256 400 576 676) |
|||
</pre> |
</pre> |
||