Carmichael 3 strong pseudoprimes: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: elided an extra comment that was left over from an edit.)
(Added EchoLisp)
Line 252: Line 252:
61 x 241 x 421
61 x 241 x 421
61 x 3361 x 4021</pre>
61 x 3361 x 4021</pre>

=={{header|EchoLisp}}==
<lang scheme>
;; charmichaël numbers up to N-th prime ; 61 is 18-th prime
(define (charms (N 18) local: (h31 0) (Prime2 0) (Prime3 0))
(for* ((Prime1 (primes N))
(h3 (in-range 1 Prime1))
(d (+ h3 Prime1)))
(set! h31 (+ h3 Prime1))
#:continue (!zero? (modulo (* h31 (1- Prime1)) d))
#:continue (!= (modulo d h3) (modulo (- (* Prime1 Prime1)) h3))
(set! Prime2 (1+ ( * (1- Prime1) (quotient h31 d))))
#:when (prime? Prime2)
(set! Prime3 (1+ (quotient (* Prime1 Prime2) h3)))
#:when (prime? Prime3)
#:when (= 1 (modulo (* Prime2 Prime3) (1- Prime1)))
(printf " 💥 %12d = %d x %d x %d" (* Prime1 Prime2 Prime3) Prime1 Prime2 Prime3)))
</lang>
{{out}}
<lang scheme>
(charms 3)
💥 561 = 3 x 11 x 17
💥 10585 = 5 x 29 x 73
💥 2465 = 5 x 17 x 29
💥 1105 = 5 x 13 x 17

(charms 18)
;; skipped ....
💥 902645857 = 47 x 3727 x 5153
💥 2632033 = 53 x 53 x 937
💥 17316001 = 53 x 157 x 2081
💥 4335241 = 53 x 157 x 521
💥 178837201 = 59 x 1451 x 2089
💥 329769721 = 61 x 421 x 12841
💥 60957361 = 61 x 181 x 5521
💥 6924781 = 61 x 61 x 1861
💥 6924781 = 61 x 61 x 1861
💥 15247621 = 61 x 181 x 1381
💥 99036001 = 61 x 541 x 3001
💥 101649241 = 61 x 661 x 2521
💥 6189121 = 61 x 241 x 421
💥 824389441 = 61 x 3361 x 4021
</lang>


=={{header|Haskell}}==
=={{header|Haskell}}==