Mersenne primes: Difference between revisions
Content added Content deleted
(Added Wren) |
|||
Line 1,292: | Line 1,292: | ||
^C |
^C |
||
sidef mersenne.sf 12.47s user 0.02s system 99% cpu 12.495 total |
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> |
</pre> |
||