WA求助
查看原帖
WA求助
1003061
XRUIX楼主2024/3/27 16:23

案例全错了,不知道哪的问题

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>  
#include <vector>
#include <cstdio>
#include <cstring>
using namespace std;

bool* isPrime = new bool[100000005];
int mydata[6000010];

void GetPrime(int n) {

	memset(isPrime, 1, sizeof(isPrime));
	//1不是素数
	isPrime[1] = 0;

	int cnt = 0;
	for (int i = 2; i <= n; i++) {
		//没筛掉
		if (isPrime[i]) {
			mydata[++cnt] = i;
		}

		//遍历已有素数
		for (int j = 1; j <= cnt && i * mydata[j] <= n; j++) {
			//i*data->at(j)为素数
			isPrime[i * mydata[j]] = 0;
			//保证线性
			if (i % mydata[j] == 0) {
				break;
			}
		}
	}
}

int main()
{

	int n, k;
	cin >> n >> k;

	GetPrime(n);

	int curr;
	while (k--) {
		scanf("%d", &curr);
		printf("%d\n", mydata[curr]);
	}

	return 0;
}
2024/3/27 16:23
加载中...