多此一举(不)
2024-03-19 13:34:39
发布于:广东
4阅读
0回复
0点赞
正常来说只需要奇数输出3偶数输出2就行了
但是我就不按套路出牌嘿嘿
#include <iostream>
#include <cstdio>
using namespace std;
bool vis[1000005];
int prime[100005], ct;
void aishishai(){
int n = 1000000;
vis[0] = vis[1] = 1;
for(int i = 2; i * i <= n; i++){
if(!vis[i]){
for(int j = i * 2; j <= n; j += i) vis[j] = 1;
}
}for(int i = 2; i <= n; i++){
if(!vis[i]) prime[++ct] = i;
}
}
int main(){
aishishai();
int t, n;
scanf("%d", &t);
while(t--){
scanf("%d", &n);
for(int i = 1; i <= ct; i++){
if(vis[n + prime[i]]){
printf("%d\n", prime[i]);
break;
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个