Seeking the number of prime numbers Eppendorf sieve

class Solution {
    public int countPrimes(int n) {
        if(n<=1) return 0;
        int sum=0;
        int[] nums=new int[n];
        nums[0]=1;
        for(int i=2;i<=Math.sqrt(n);i++){
            for(int j=i*i;j<=n;j+=i){
                nums[j-1]=1;
            }
        }
        for(int i=0;i<n;i++){
            if(nums[i]==0){
                sum++;
            }
        }
        if(nums[n-1]==0) sum--;//不包括终点
        return sum;
    }
}
Released four original articles · won praise 0 · Views 20

Guess you like

Origin blog.csdn.net/qq_43720965/article/details/104610449