Java BitSet 找素數
import java.util.BitSet;
public class Sieve
{
public static void main(String[] args){
int n = 20000000;
long start = System.currentTimeMillis();
BitSet b = new BitSet(n+1);
int i = 2;
for(i = 2; i <= n;i++)
{
b.set(i);
}
i = 2;
while(i*i <=n)
{
if(b.get(i))
{
//set current num's multiple num to false.
int k = 2 * i;
while(k <= n)
{
b.clear(k);
k +=i;
}
}
i++;
}
long end = System.currentTimeMillis();
System.out.println("count = " + b.cardinality());
System.out.println((end-start) +" milliseconds");
}
}
public class Sieve
{
public static void main(String[] args){
int n = 20000000;
long start = System.currentTimeMillis();
BitSet b = new BitSet(n+1);
int i = 2;
for(i = 2; i <= n;i++)
{
b.set(i);
}
i = 2;
while(i*i <=n)
{
if(b.get(i))
{
//set current num's multiple num to false.
int k = 2 * i;
while(k <= n)
{
b.clear(k);
k +=i;
}
}
i++;
}
long end = System.currentTimeMillis();
System.out.println("count = " + b.cardinality());
System.out.println((end-start) +" milliseconds");
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.