Jump to content

Mersenne primes: Difference between revisions

→‎{{header|Wren}}: Replaced existing solution with one which uses BigInt.
(→‎{{header|Wren}}: Replaced existing solution with one which uses BigInt.)
Line 1,400:
=={{header|Wren}}==
{{libheader|Wren-math}}
{{libheader|Wren-big}}
As far as exact integer arithmetic in Wren will allow us to go.
A bit slow so limited to first 14 Mersenne primes.
<lang ecmascript>import "/math" for Int
import "/big" for BigInt
 
var MAX = 14
System.print("The followingfirst %(MAX) Mersenne numbersprimes are prime:")
for (i in 1..31) {
var mcount = (1<<i) - 10
var p = 2
if (Int.isPrime(m)) {
while (true) {
var sp = (i < 10) ? " " : ""
var m = System(BigInt.print("M(%(i))%(sp)one =<< 2 ^ %(i)%(spp) - 1 = %(m)")
if (m.isProbablePrime(10)) {
System.print("2 ^ %(p) - 1")
count = count + 1
if (count == MAX) break
}
while (true) {
var spp = (ip <> 102) ? "p + "2 : ""3
if (Int.isPrime(mp)) {break
}
}</lang>
Line 1,414 ⟶ 1,424:
{{out}}
<pre>
The followingfirst 14 Mersenne numbersprimes 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
2 ^ 61 - 1
2 ^ 89 - 1
2 ^ 107 - 1
2 ^ 127 - 1
2 ^ 521 - 1
2 ^ 607 - 1
</pre>
 
9,490

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.