Mersenne primes: Difference between revisions
Content added Content deleted
m (Phix/mpfr) |
(→{{header|Wren}}: Now uses Wren-math module.) |
||
Line 1,295: | Line 1,295: | ||
=={{header|Wren}}== |
=={{header|Wren}}== |
||
{{libheader|Wren-math}} |
|||
As far as exact integer arithmetic in Wren will allow us to go. |
As far as exact integer arithmetic in Wren will allow us to go. |
||
<lang ecmascript> |
<lang ecmascript>import "/math" for Int |
||
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:") |
System.print("The following Mersenne numbers are prime:") |
||
for (i in 1..31) { |
for (i in 1..31) { |
||
var m = (1<<i) - 1 |
var m = (1<<i) - 1 |
||
if ( |
if (Int.isPrime(m)) { |
||
var sp = (i < 10) ? " " : "" |
var sp = (i < 10) ? " " : "" |
||
System.print("M(%(i))%(sp) = 2 ^ %(i)%(sp) - 1 = %(m)") |
System.print("M(%(i))%(sp) = 2 ^ %(i)%(sp) - 1 = %(m)") |