欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Count Primes

程序员文章站 2024-03-14 20:42:23
...

题目
Count the number of prime numbers less than a non-negative number, n.

答案

class Solution {
    public int countPrimes(int n) {
        if(n <= 1) return 0;
        int ans = 0;
        // 0, 1 .... n - 1
        boolean[] primes = new boolean[n];        
        primes[1] = false;
        
        for(int i = 2; i < primes.length; i++) 
            primes[i] = true;
        
        for(int i = 2; i <= Math.sqrt(n - 1); i++) {
            if(primes[i]) {
                for(int j = 2; i * j <= (n - 1); j++) {
                    primes[i * j] = false;
                }   
            }
        }
        
        for(int i = 1; i < primes.length; i++) 
            if(primes[i] == true) ans++;
        
        return ans;
    }
}