竞赛
考级
当然可以将每个数依次进行判断,得出质数表,这里讲一种比较高效的算法:埃氏筛法。将 222 到 nnn 之间的整数存在一个 bool 数组中,先全部标记为 true,从 222 开始,把 222 的倍数全部标记为 false,再往下循环,发现下一个质数是 333,再把 333 的倍数全部标记为 false,再往下循环,发现下一个质数是 555,再把 555 的倍数全部标记为 false,以此类推,便能把范围内的质数筛出来,过程中把质数存在数组中,便能得到第 nnn 个质数。 经计算,第 202520252025 个质数在 200002000020000 以内,只要把 200002000020000 以内的质数筛出来即可。 时间复杂度是一个常数,数量级为 10410^4104 。 代码如下:
dream_陆军展览
因为求质数的循环可以将运算过程写成sqrt(n),所以这里时间复杂度是O(nlgn) 然后重复判断即可,因此代码如下:
复仇者_sxwwsด้้(加团队
C.K.K.S.H
T4: 这道题要求我们求出第n个质数[1]。 我们只要从2开始逐个判断每个数是否为质数,就可以找到第n个质数。 C++代码: PYTHON 代码: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 1. 质数是指只能被1和自己整除的自然数。 ↩︎
yang(Python,半退)
#include<bits/stdc++.h> using namespace std; long long a,b,c=0; int main() { cin>>a; for(long i=2;1;i++){ for(int j=2;j<i;j++)if(i%j0)c++; if(c0)a--; if(a==0){cout<<i;return 0;} c=0; } return 0; }
???
魔丸