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!