Primality by trial division: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add SETL) |
Langurmonkey (talk | contribs) |
||
Line 3,042: | Line 3,042: | ||
Below, we use an implied parameter (.i) on the .isPrime function. |
Below, we use an implied parameter (.i) on the .isPrime function. |
||
<syntaxhighlight lang="langur">val .isPrime = f .i == 2 or |
<syntaxhighlight lang="langur">val .isPrime = f .i == 2 or .i > 2 and |
||
not any fn(.x) .i div .x, pseries 2 .. .i ^/ 2 |
|||
writeln filter .isPrime, series 100</syntaxhighlight> |
writeln filter .isPrime, series 100</syntaxhighlight> |
||
Line 3,049: | Line 3,049: | ||
=== Recursive === |
=== Recursive === |
||
{{trans|Go}} |
{{trans|Go}} |
||
<syntaxhighlight lang="langur">val .isPrime = |
<syntaxhighlight lang="langur">val .isPrime = fn(.i) { |
||
val .n = abs(.i) |
val .n = abs(.i) |
||
if .n <= 2: return .n == 2 |
if .n <= 2: return .n == 2 |
||
val .chkdiv = |
val .chkdiv = fn(.n, .i) { |
||
if .i |
if .i * .i <= .n { |
||
return .n ndiv .i and self(.n, .i+2) |
return .n ndiv .i and self(.n, .i+2) |
||
} |
} |