package demo;
import java.util.BitSet;
import java.util.Scanner;
/**
* This program computes all primes up to n.
* @version 1.21 206-02-03
* @author Liangmh
*/
public class Sieve {
public static void main(String[] args){
int n = 0;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
BitSet bitSet = new BitSet(n);
bitSet.clear(0);
bitSet.set(1, n);
for (int i = 2; i * i <= n; i++){
for (int j = i * i; j <= n; j += i){
bitSet.clear(j - 1);
}
}
int count = 0;
for (int i = 0; i < n; i++){
if (bitSet.get(i)){
//System.out.print((i + 1) + " ");
count++;
}
}
System.out.println(count);
}
}
用Eratosthenes筛子算法,求解从2到n之间的素数
最新推荐文章于 2023-01-22 11:26:42 发布