[LeetCode] 204. Count Primes

Description:

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

Solution 1:

create a dict to store the number of prime less than n.

Time Complexity: O(n*n)

class Solution:
    # @param {integer} n
    # @return {integer}
    def countPrimes(self, n):
        result_dict = {0: 0, 1: 1, 2: 2}
        for key in range(3, n+1):
            if self.isPrime(key):
                result_dict[key] = result_dict[key-1] + 1
            else:
                result_dict[key] = result_dict[key-1]
        return result_dict[n]


    def isPrime(self, n):
        if n == 0:
            return False
        if n == 1 or n == 2:
            return True
        for divide in range(2, n):
            if n % divide == 0:
                return False
        return True

Got  Time Limit Exceeded from OJ. Fail!


你可能感兴趣的:(LeetCode,python)