792 第K個質數

2022-02-15 03:42:45 字數 1070 閱讀 4017

792. 第k個質數

中文english

給出質數n,輸出它是第幾個質數。

樣例1

輸入: n = 3

輸出: 2

解釋:[2,3,5],3是第2個質數。

樣例2

輸入: n = 11

輸出: 5

解釋:[2,3,5,7,11],11是第五個質數。

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

第k個排列

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。說明 public string getpermutation int n,int k l...

第k個排列

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。說明 給定 n 的範圍是 1,9 給定 k 的範圍是 1,n 示例 1 輸入 n 3,k ...

第k個排列

給出集合 1,2,3,n 其所有元素共有 n 種排列。按大小順序列出所有排列情況,並一一標記,當 n 3 時,所有排列如下 123 132 213 231 312 321 給定 n 和 k,返回第 k 個排列。說明 給定 n 的範圍是 1,9 給定 k 的範圍是 1,n 示例 1 輸入 n 3,k ...