1. 程式人生 > >leetcode:(204) Count Primes(java)

leetcode:(204) Count Primes(java)

package LeetCode_HashTable;

/**
 * 題目:
 *      Count the number of prime numbers less than a non-negative number, n.
 *      Example:
 *          Input: 10
 *          Output: 4
 *     Explanation: There are 4 prime numbers less than 10, they are 2,3,5,7
 */
public class CountPrimes_204_1023 {
    public int CountPrimes(int n){
        if (n == 0 || n == 1) {
            return n;
        }

        int result = 0;
        boolean[] notPrime = new boolean[n]; //建立一個長度為n的陣列,並將其初始化為false
        for (int i = 2; i < n; i++) {
            if (notPrime[i] == false) {
                result++; //如果notPrime[i]為false,則其為素數,將result加1
            }
            for (int j = i; i * j < n; j++) {
                notPrime[i * j] = true;
            }
        }
        return result;
    }
}