zoukankan      html  css  js  c++  java
  • 792. 第K个质数

    792. 第K个质数

    中文English

    给出质数n,输出它是第几个质数。

    样例

    样例1

    输入: n = 3
    输出: 2
    解释:
    [2,3,5],3是第2个质数。
    

    样例2

    输入: n = 11
    输出: 5
    解释:
    [2,3,5,7,11],11是第五个质数。
    

    注意事项

    • n <= 100000
    • 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
    class Solution:
        """
        @param n: the number
        @return: the rank of the number
        """
        """
        大致思路:
        1.首先给定初始值,如果是prime已经被赋值的话,就不需要再赋值了。已经被赋值说明的是已经判断当前该数不是质数,可以被整除
        2.按照参数来循环到指定的位置n来赋值不是质数的(赋值1,标记不是质数即可)。
        3.在依次循环,如果是0则说明没有被赋值,说明是质数。计数即可
        """
        def kthPrime(self, n):
            ##初始化,全部为0
            prime = [0]*100000
            
            for i in range(2,n):
                ##如果是0说明还没有被赋值(其实加这个判断,可以少一些赋值,避免重复赋值)
                if prime[i] == 0:
                    ##如果不是质数的话,可以被2,3,4,5...等整除的,那么被赋值1(相反是从2,3,4,5...相乘得到的数值)
                    for j in range(2*i,n,i):
                        prime[j] = 1
                
            ##然后判断是第多少个,为1的说明不是质数,为0的说明才是质数(从2开始判断)
            count = 1 
            for j in range(2,n):
                if prime[j] == 0:
                    count += 1
            return count

  • 相关阅读:
    Oracle游标举例
    java程序写的模拟用户点击的程序(抢小米程序)
    最好的ASP.NET MVC入门 step by step 来自微软
    项目经理
    程序员的职场晋升之路
    程序员怎么样才能进入微软?
    浅谈程序员创业
    软件销售心得-送给自己卖软件的程序员
    lamda表达式,匿名函数
    为什么Flash没能在移动设备上挺住?
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12551459.html
Copyright © 2011-2022 走看看