zoukankan      html  css  js  c++  java
  • 【leetcode❤python】 204. Count Primes

    #-*- coding: UTF-8 -*-
    #Hint1:
    #数字i,i的倍数一定不是质数,因此去掉i的倍数,例如5,5*1,5*2,5*3,5*4,5*5都不是质数,应该去掉
    #5*1,5*2,5*3,5*4 在数字1,2,3,4的时候都已经剔除过,因此数字5,应该从5*5开始
    #Hint2:
    #例:
    #2 × 6 = 12
    #3 × 4 = 12
    #4 × 3 = 12
    #6 × 2 = 12
    #显然4 × 3 = 12,和6 × 2 = 12不应该分析,因为在前两式中已经知道12不是质数,因此如果数字i是质数,i=p*q,p一定小于等于n,因此p小于等于√i
    #因此只需循环到√i,就可以了
    #AC源码如下:
    import math
    class Solution(object):
        def countPrimes(self, n):
            """
            :type n: int
            :rtype: int
            """
            isPrime=[True]*n
          
            for i in xrange(2,n):
                if i*i>=n:break
                if not isPrime[i]:continue
                for j in xrange(i*i,n,i):
                    isPrime[j]=False
            
            count=0
            for i in xrange(2,n):
                if isPrime[i]:count+=1
            return count

  • 相关阅读:
    ida动态调试--反反调试
    python读取配置文件
    问题解决:局域网内,为啥别人ping不到我的IP
    完全卸载MySQL
    JDK环境配置
    win10无法运行Vmware,怎么办
    查看ie版本
    公开的免费WebService接口分享,用于做接口练习
    SVN更改地址
    Loadrunner录制步骤及说明
  • 原文地址:https://www.cnblogs.com/kwangeline/p/6059580.html
Copyright © 2011-2022 走看看