Deceptive numbers: Difference between revisions
Content added Content deleted
(→{{header|Ruby}}: Add Ruby) |
(LFE version) |
||
Line 351: | Line 351: | ||
</pre> |
</pre> |
||
=={{header|LFE}}== |
|||
{{Trans|Scheme}} |
|||
<syntaxhighlight lang="lisp"> |
|||
(defmodule deceptives |
|||
(export (prime? 1) (deceptives 1))) |
|||
(defun prime? (n) |
|||
(prime? n 2 0 #B(1 2 2 4 2 4 2 4 6 2 6))) |
|||
(defun prime? (n d j wheel) |
|||
(cond |
|||
((=:= j (byte_size wheel)) |
|||
(prime? n d 2 wheel)) |
|||
((> (* d d) n) |
|||
'true) |
|||
((=:= 0 (rem n d)) |
|||
'false) |
|||
(else |
|||
(prime? n (+ d (binary:at wheel j)) (+ j 1) wheel)))) |
|||
(defun deceptives (n) |
|||
(deceptives 2 1 n '())) |
|||
(defun deceptives |
|||
((_ _ 0 l) |
|||
(lists:reverse l)) |
|||
((k r n l) |
|||
(if (andalso (not (prime? k)) (=:= 0 (rem r k))) |
|||
(deceptives (+ k 1) (+ (* r 10) 1) (- n 1) (cons k l)) |
|||
(deceptives (+ k 1) (+ (* r 10) 1) n l)))) |
|||
</syntaxhighlight> |
|||
{{Out}} |
|||
<pre> |
|||
lfe> (slurp "deceptive.lfe") |
|||
#(ok deceptives) |
|||
lfe> (lfe_io:format "~w~n" (list (deceptives 10))) |
|||
(91 259 451 481 703 1729 2821 2981 3367 5461) |
|||
ok |
|||
</pre> |
|||
=={{header|Mathematica}}/{{header|Wolfram Language}}== |
=={{header|Mathematica}}/{{header|Wolfram Language}}== |
||
<syntaxhighlight lang="mathematica">ClearAll[DeceptiveNumberQ] |
<syntaxhighlight lang="mathematica">ClearAll[DeceptiveNumberQ] |