re,0pts
查看原帖
re,0pts
384214
esquigybcu楼主2021/4/12 15:22

Code ==

#include <stdio.h>

const int SIZE = 1e8 + 5, PRIMES = 1e8;
bool isnp[SIZE];
int primes[SIZE], pos;

void get_primes(int n)
{
	for (int i = 2; i <= n; i++)
	{
		if (!isnp[i])
		    primes[pos++] = i;
		for (int j = 0; j < pos; j++)
		{
			if (i * primes[j] <= n)
			    isnp[i * primes[j]] = true;
			if (i % primes[j] == 0)
			    break;
		}
	}
}

int main()
{
	int n, q;
	scanf("%d %d", &n, &q);
	get_primes(n);
	for (int i = 0; i < q; i++)
	{
		int k;
		scanf("%d", &k);
		printf("%d\n", primes[k - 1]);
	}
	return 0;
}

i*primes[j] <= n检查了,质数数组开到了1e8,依旧RERE

2021/4/12 15:22
加载中...