线性筛求助
查看原帖
线性筛求助
550471
Ice_function楼主2022/4/9 14:44

rt,是常数大了还是漏写了优化? TLE记录

#include <bits/stdc++.h>
using namespace std;

const int N=1e8+2,N2=1e6+6;
bool inp[N];
int n,q;

int a[N2];

inline void init()
{
	int t=0;a[0]=1;a[1]=1;
	for (int i=2;i<=n;i++)
	{
		if (!inp[i]){t++;a[t]=i;}
		for (int j=1;i*a[j]<=n && j<=t;j++)//
		{
			inp[i*a[j]]=1;
			if ((i%a[j])==0) break;
		}
	}
}
inline int read()
{
    int X=0; bool flag=1; char ch=getchar();
	while(ch<'0'||ch>'9') {if(ch=='-') flag=0; ch=getchar();}
	while(ch>='0'&&ch<='9') {X=(X<<1)+(X<<3)+ch-'0'; ch=getchar();}
    if (flag) return X;return ~(X-1);
}
int main()
{
	n=read();q=read();
	init();
	
    	for (int i=1,j;i<=q;i++){j=read();printf("%d\n",&a[j]);}
	return 0;
}
程序太乱还请原谅
2022/4/9 14:44
加载中...