暂存代码
更新:已通过
题面

题意
给定 n ,判断 n 是否为质数 ,特殊要求:2 不为质数
思路
范围不大,直接欧拉筛打表,注意题目的特殊要求即可。
代码
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<set>
#include<map>
#include<queue>
#include<vector>
using namespace std;
#define ll long long
ll exgcd(ll a,ll b,ll &x , ll &y){
if(!b){
x = 1 , y = 0;
return a;
}
ll d = exgcd(b,a%b,x,y);
ll t = x;
x = y;
y = t - y*(a/b);
return d;
}
int gcd(int a, int b){
if(!b){
return a;
}
return gcd(b,a%b);
}
const int N = 1e5 + 5;
int T,k;
int cnt = 0 , vis[N] , p[N];
void init(){
vis[0] = vis[1] = 1;
for(int i = 2;i<N;++i){
if(!vis[i]){
p[++cnt] = i;
}
for(int j = 1;j<=cnt && i * p[j] < N;++j){
vis[i * p[j]] = 1;
if(i % p[j] == 0) break;
}
}
vis[2] = 1;
}
int n;
void solve(){
while(cin >> n && n > 0){
printf("%d: %s",++k,(vis[n]?"no\n":"yes\n"));
}
}
int main(void){
T = 1;
init();
while(T--){
solve();
}
return 0;
}