Jump to content

Mersenne primes: Difference between revisions

Added Java
(GP)
(Added Java)
Line 85:
2 ^ 19 - 1
2 ^ 31 - 1</pre>
 
=={{header|Java}}==
{{trans|Kotlin}}
<lang Java>import java.math.BigInteger;
 
public class MersennePrimes {
private static final int MAX = 20;
 
private static final BigInteger ONE = BigInteger.ONE;
private static final BigInteger TWO = BigInteger.valueOf(2);
 
private static boolean isPrime(int n) {
if (n < 2) return false;
if (n % 2 == 0) return n == 2;
if (n % 3 == 0) return n == 3;
int d = 5;
while (d * d <= n) {
if (n % d == 0) return false;
d += 2;
if (n % d == 0) return false;
d += 4;
}
return true;
}
 
public static void main(String[] args) {
int count = 0;
int p = 2;
while (true) {
BigInteger m = TWO.shiftLeft(p - 1).subtract(ONE);
if (m.isProbablePrime(10)) {
System.out.printf("2 ^ %d - 1\n", p);
if (++count == MAX) break;
}
// obtain next prime, p
while (true) {
p = (p > 2) ? p + 2 : 3;
if (isPrime(p)) break;
}
}
}
}</lang>
{{out}}
<pre>2 ^ 2 - 1
2 ^ 3 - 1
2 ^ 5 - 1
2 ^ 7 - 1
2 ^ 13 - 1
2 ^ 17 - 1
2 ^ 19 - 1
2 ^ 31 - 1
2 ^ 61 - 1
2 ^ 89 - 1
2 ^ 107 - 1
2 ^ 127 - 1
2 ^ 521 - 1
2 ^ 607 - 1
2 ^ 1279 - 1
2 ^ 2203 - 1
2 ^ 2281 - 1
2 ^ 3217 - 1
2 ^ 4253 - 1
2 ^ 4423 - 1</pre>
 
=={{header|Julia}}==
1,452

edits

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