792. 第k個質數
中文english
給出質數n
,輸出它是第幾個質數。
樣例1
輸入: n = 3
輸出: 2
解釋:[2,3,5],3是第2個質數。
樣例2
輸入: n = 11
輸出: 5
解釋:[2,3,5,7,11],11是第五個質數。
classsolution:
"""@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 ...