Count Primes

来源:互联网 发布:谁明浪子心网络翻唱 编辑:程序博客网 时间:2024/06/16 02:54

题目:

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

解题思路:

思路一(Time limit Exceed):

class Solution:
    # @param {integer} n
    # @return {integer}
    def countPrimes(self, n):
        import math
        numbers = 2
        for i in range(5,n):
            Flag = True
            for j in range(2,int(math.sqrt(i))+1):
                if i%j==0:
                    Flag = False
                    break
            if Flag:
                numbers += 1
        return numbers
思路2(accept):

class Solution:
    # @param {integer} n
    # @return {integer}
    def countPrimes(self, n):
        from math import *
        primes = []
        numbers = 0
        if n<=2:
            return 0
        for i in range(n):
            primes.append(True)
            
        j = 2
        while j<=sqrt(n-1):
            if primes[j]:
                k= 2*j
                while k<n:
                    primes[k]=False
                    k = k+j
            j += 1
            
        for i in range(2,n):
            if primes[i]:
                numbers += 1
        return numbers

总结:

本题不难,只是在一些python的特性上纠结不清


0 0
原创粉丝点击