Mersenne primes: Difference between revisions

Added Wren
(Added Wren)
Line 1,292:
^C
sidef mersenne.sf 12.47s user 0.02s system 99% cpu 12.495 total
</pre>
 
=={{header|Wren}}==
As far as exact integer arithmetic in Wren will allow us to go.
<lang ecmascript>var isPrime = Fn.new { |n|
if (n < 2 || !n.isInteger) return false
if (n%2 == 0) return n == 2
if (n%3 == 0) return n == 3
var d = 5
while (d*d <= n) {
if (n%d == 0) return false
d = d + 2
if (n%d == 0) return false
d = d + 4
}
return true
}
 
System.print("The following Mersenne numbers are prime:")
for (i in 1..31) {
var m = (1<<i) - 1
if (isPrime.call(m)) {
var sp = (i < 10) ? " " : ""
System.print("M(%(i))%(sp) = 2 ^ %(i)%(sp) - 1 = %(m)")
}
}</lang>
 
{{out}}
<pre>
The following Mersenne numbers are prime:
M(2) = 2 ^ 2 - 1 = 3
M(3) = 2 ^ 3 - 1 = 7
M(5) = 2 ^ 5 - 1 = 31
M(7) = 2 ^ 7 - 1 = 127
M(13) = 2 ^ 13 - 1 = 8191
M(17) = 2 ^ 17 - 1 = 131071
M(19) = 2 ^ 19 - 1 = 524287
M(31) = 2 ^ 31 - 1 = 2147483647
</pre>
 
9,476

edits