Lucas-Lehmer test: Difference between revisions
Content deleted Content added
Add link to original source |
|||
Line 1,317:
=={{header|Scala}}==
[[Category:Scala Implementations]]
{{libheader|Scala}}
In accordance with definition of Mersenne primes it could only be a Mersenne number with prime exponent.
<lang Scala>object LLT extends App {
import Stream._
def primeSieve(s: Stream[Int]): Stream[Int] =
val primes = primeSieve(from(2))
def s(
.foreach {p=>println("prime M"+(p._1)._1+{if ((p._1)._1<200) ": "+(p._1)._2 else ": ("+(p._1)._2.toString.size+" digits)"})}▼
val upbPrime = 9999
println(s"Finding Mersenne primes in M[2..$upbPrime]")
((primes takeWhile (_ < upbPrime)).par map { p => (p, mersenne(p)) }
map { p => if (p._1 == 2) (p, 0) else (p, s(p._2, p._1 - 1)) } filter { _._2 == 0 })
.foreach { p =>
println(s"prime M${(p._1)._1}: " +
▲
}
println("That's All Folks!")
}</lang>
{{out}}
<pre style="height: 30ex; overflow: scroll">
prime M2: 3
prime M3: 7
prime M5: 31
Line 1,353 ⟶ 1,364:
prime M4423: (1332 digits)
prime M9689: (2917 digits)
prime M9941: (2993 digits)
That's All Folks!</pre>
=={{header|Scheme}}==
|