刚刚因这道题嘲笑别人的我TLE了三个点
查看原帖
刚刚因这道题嘲笑别人的我TLE了三个点
355093
离·清梦楼主2022/5/1 21:31
#include<bits/stdc++.h>
using namespace std;
int T,prime[1000030],vis[1000030],ans,l,p;
inline void pp(int n){
	for(int i = 2;i <= n;i++){
		if(!vis[i]){ 
			prime[i] = 1;
			for(int j=2*i;j<=n;j+=i)vis[j] = 1;
		}
	}
}
int main(){
	pp(500010);
	cin>>T;
	while(T--)
	{
		scanf("%d",&l);
		if(l == 1)cout<<1<<endl;
		else
			for(register int i = l;i >= 0;i--){
				if(prime[i] == 1){
					cout<<i<<endl;
					break;
				}
			}
	}
	return 0;
}

笑死我了,刚才我还嘲笑别人

2022/5/1 21:31
加载中...