Primality by trial division: Difference between revisions

Content added Content deleted
(Add SETL)
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
.i > 2 and not any f(.x) .i div .x, pseries 2 .. .i ^/ 2
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 = f(.i) {
<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 = f(.n, .i) {
val .chkdiv = fn(.n, .i) {
if .i x .i <= .n {
if .i * .i <= .n {
return .n ndiv .i and self(.n, .i+2)
return .n ndiv .i and self(.n, .i+2)
}
}