2s卡过,想问一下这个算法时间复杂度是O(n)吗?
查看原帖
2s卡过,想问一下这个算法时间复杂度是O(n)吗?
452262
渡墨残殇楼主2022/11/21 22:04
#include<bits/stdc++.h>
using namespace std;
#define gc getchar()
 int read()
{
	int a=0;bool f=0;char x=gc;
	while(!isdigit(x)){f|=x=='-';x=gc;}
	while(isdigit(x)){a=(a<<3)+(a<<1)+(x-'0');x=gc;}
	return f?-a:a;
}
void qwrite(int x,char ed='\n')
{
    if(!x) {putchar('0'),putchar(ed);return;}
    char w[44];int cnt=0;
    if(x<0) putchar('-'),x=-x;
    while(x) w[++cnt]=(x%10)+'0',x/=10;++cnt;
    while(--cnt) putchar(w[cnt]);putchar(ed);
}
 const int N =200000000;
bool  a[N];
int f[N];
int n,m;
int t;
int main ()
{
	n=read(),m=read();
	for(int i=2;i<=n;i++)
	{
		if(!a[i])
		{
		f[++t]=i,a[i]=1;
		for(int j=2;j*i<=n;j++)a[i*j]=1;
		}
	}
		while(m--)
	{
		int k;k=read();
		qwrite(f[k]);
	}
	return 0;
}

https://www.luogu.com.cn/record/94977305

2022/11/21 22:04
加载中...