救救孩子…………2.0——一个TLE
查看原帖
救救孩子…………2.0——一个TLE
775044
wkl20110514楼主2023/1/31 12:55

附上代码:

#include<bits/stdc++.h>
#define MAXN 99999999
using namespace std;
long long a[MAXN];
bool b[MAXN];
inline long long read()
{
	long long s = 0, f = 1;
	char a = getchar();
	while (a > '9' || a < '0')
	{
		if (a == '-')
		{
			f = -1;
		}
		a = getchar();
	}
	while (a <= '9' && a >= '0')
	{
		s = ((s << 3) + (s << 1)) + a - '0';
		a = getchar();
	}
	return s * f;
}
void ny(long long n) {
	long long x = 1;
	for (long long i = 2; i <= n; i++) {
		if (b[i]) {
			a[x] = i;
			x++;
		}
		for (int j = 1; j <= x && a[j] * i <= n; j++) {
			b[a[j] * i] = false;
			if (i % a[j] == 0) break;
		}
	}
}
int main() {
	long long L, r, m, n, num;
	memset(b, true, sizeof(b));
	//scanf("%lld%lld", &n, &m);
	n = read();
	m = read();
	ny(m);
	for (int i = 0; i < n; i++) {
		//scanf("%lld%lld", &L, &r);
		L = read();
		r = read();
		if (r > m || L < 1) {
			//printf("Crossing the line\n");
			puts("Crossing the line");
			continue;
		}
		num = 0;
		for (int j = 0; a[j] <= r; j++) {
			num += a[j] >= L ? 1 : 0;
		}
		printf("%lld\n", num);
	}
	return 0;
}

大佬们看看球球了

2023/1/31 12:55
加载中...