为什么以下代码开O2会RE
查看原帖
为什么以下代码开O2会RE
702659
l0k9j8h7楼主2024/7/26 19:46
#include<bits/stdc++.h>
using namespace std ;
deque<int> p;
bool p2[1000007];
void prime(){
	
	for(int i=2;i<3334;i++){
		if(p2[i])continue;
		bool flag=0;
		if(!p.empty())for(auto &j:p){
			if(i%j==0){
				flag=1;
				break;
			}
		}int sum=i;
		p2[i]=flag;
		if(!flag)p.push_back(i);
		while(sum<=1000000){
			sum+=i;
			p2[sum]=1;
		}
	}
	
	for(int i=1009;i<100001;i++){
		if(!p2[i])p.push_back(i);
	}
}
//vector<bitset<20>> b;

int main(){
	prime();
	int t;
	cin>>t;
	int sum=0;
	while(t-p.front()>=0){
		sum++;
		cout<<p.front()<<endl;
		t-=p.front();
		p.pop_front();
	}
	cout<<sum<<endl;
	
	return 0;
}
2024/7/26 19:46
加载中...