为什么出现了奇怪的错误
  • 板块灌水区
  • 楼主easy42
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/10/22 18:41
  • 上次更新2024/10/22 20:26:21
查看原帖
为什么出现了奇怪的错误
1380111
easy42楼主2024/10/22 18:41
#include <iostream>
#include <vector>
using namespace std;
const int MAXN = 1e7 + 1;
vector<bool> is_prime(MAXN, true);
vector<int> likes_count(MAXN, 0);
void sieve() {
    is_prime[0] = is_prime[1] = false; 
	for (int i = 2; i * i < MAXN; ++i) {
		if (is_prime[i]) {
			for (int j = i * i; j < MAXN; j += i) {
			    is_prime[j] = false; 
			}
		}
	}
}
void preprocess() {
	sieve(); 
	for (int i = 2; i < MAXN; ++i) {
		if (is_prime[i]) { 
		    likes_count[i] = 1;
		}
	}
	for (int i = 2; i < MAXN; ++i) {
		if (is_prime[i]){
			for (int j = i; j * i < MAXN; ++j) {
				if (is_prime[j]) {
					likes_count[i * j] = 1;
				}            
			}        
		}   
	}
	for (int i = 1; i < MAXN; ++i) {
	    likes_count[i] += likes_count[i - 1];
	}
}
int main(){
	preprocess();
	int q;
	cin>>q;
	while(q--){
		int L, R;
		cin >> L >> R;
		 cout << likes_count[R] - likes_count[L - 1] << endl;
	}
	return 0;
}

就是运行的时候,无法输入

2024/10/22 18:41
加载中...