20求调
查看原帖
20求调
1683435
tyt123楼主2025/6/24 11:40

感觉没啥问题-_-

#include<iostream>
#include<set>
#include<cmath>
using namespace std;
	int n,m;
	set<int> s;
int main(){
	cin>>n>>m;
	for(int i=ceil(sqrt(n));i<=1001;i++){//埃筛 
		int j=i*i;
		s.insert(j);
			for(int k=2;k<=((int)1e6+1)/j;k++){
				s.insert(k*j);
			}
	}												
	for(int i=1;i<=m;i++){
		int a;
		cin>>a;
		if(a>=n&&s.count(a)){cout<<"lucky"<<endl;}//如果输入的就是幸运数,直接输出lucky 
		else{
			//由于set自动排序,所以把a放进去后,取后一个数即可,最后删除 
			s.insert(a); 
			auto it=s.find(a);
			it++;
			cout<<*it<<endl;
			s.erase(it);
		}
	}
}
2025/6/24 11:40
加载中...