其他分享
首页 > 其他分享> > Sieve of Eratosthenes algorithm

Sieve of Eratosthenes algorithm

作者:互联网

Given an integer n, return the number of prime numbers that are strictly less than n.

基本思路:小于n的数的所有倍数都不是素数。

    public int countPrimes(int n) {
        if(n<=1)
            return 0;
        boolean[] isPrimes = new boolean[n];
        Arrays.fill(isPrimes,true);
        int ans = 0;
        for(int i = 2;i * i<n;i++)
        {
            if(isPrimes[i])
            {
                for(int j = i * i;j <n;j+=i)   //i的倍数
                {
                    isPrimes[j] = false;
                }
            }
        }
        for(int i = 2;i<=n-1;i++)
            if(isPrimes[i])
                ans++;
        return ans;
    }

标签:小于,algorithm,标记,int,素数,枚举,倍数,Sieve,Eratosthenes
来源: https://blog.csdn.net/nth2000/article/details/120795494