其他分享
首页 > 其他分享> > 【YBTOJ】线性筛素数

【YBTOJ】线性筛素数

作者:互联网

在这里插入图片描述

思路:

无(

c o d e code code

#include<iostream>
#include<cstdio>
using namespace std;
long long n, q;
long long s[6001000];
bool b[100000001];
void p(long long n)
{
	for(long long i=2; i<=n; i++)
	{
		if(b[i]==0)
		{
			s[0]++;
			s[s[0]]=i;
		}
		for(long long j=1; j<=s[0]&&i*s[j]<=n; j++)
		{
			b[i*s[j]]=1;
			if(i%s[j]==0)
				break;
		}
	}
}
int main()
{
	scanf("%lld%lld", &n, &q);
	p(n);
	while(q--)
	{
		long long x;
		scanf("%lld", &x);
		printf("%lld\n", s[x]);
	}
}

标签:code,int,YBTOJ,scanf,long,素数,线性,include,lld
来源: https://blog.csdn.net/liuziha/article/details/122790002