Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
39
Task/Twin-primes/Java/twin-primes-2.java
Normal file
39
Task/Twin-primes/Java/twin-primes-2.java
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import java.util.BitSet;
|
||||
|
||||
public final class TwinPrimes {
|
||||
|
||||
public static void main(String[] args) {
|
||||
final int limit = 1_000_000_000;
|
||||
sievePrimes(limit);
|
||||
|
||||
int target = 10;
|
||||
int count = 0;
|
||||
boolean last = false;
|
||||
boolean first = true;
|
||||
|
||||
for ( int index = 5; index <= limit; index += 2 ) {
|
||||
last = first;
|
||||
first = primes.get(index);
|
||||
if ( last && first ) {
|
||||
count += 1;
|
||||
}
|
||||
if ( index + 1 == target ) {
|
||||
System.out.println(String.format("%8d%s%d", count, " twin primes below ", index + 1));
|
||||
target *= 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void sievePrimes(int aLimit) {
|
||||
primes = new BitSet(aLimit + 1);
|
||||
primes.set(2, aLimit + 1);
|
||||
for ( int i = 2; i <= Math.sqrt(aLimit); i = primes.nextSetBit(i + 1) ) {
|
||||
for ( int j = i * i; j <= aLimit; j += i ) {
|
||||
primes.clear(j);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static BitSet primes;
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue