lc-204


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

 
 Example 1: 

 
Input: n = 10
Output: 4
Explanation: There are 4 prime numbers less than 10, they are 2, 3, 5, 7.
 

 Example 2: 

 
Input: n = 0
Output: 0
 

 Example 3: 

 
Input: n = 1
Output: 0
 

 
 Constraints: 

 
 0 <= n <= 5 * 10⁶ 
 
 Related Topics数组 | 数学 | 枚举 | 数论 

 👍 977, 👎 0 

*/
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int countPrimes(int n) {
        boolean[] primes = new boolean[n];

        int end = n % 2 == 0 ? n / 2 : (n + 2) / 2;

        for (int i = 2; i <= end; i++) {
            for (int j = 2; j <= end; j++) {
                int num = i * j;
                if (num > n) {
                    break;
                }
                primes[num - 1] = true;
            }
        }

        int result = 0;

        for (int i = 1; i < n - 1; i++) {
            if (!primes[i]) {
                result++;
            }
        }

        return result;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

文章作者: 倪春恩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 倪春恩 !