题目描述:
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N
(≤ 10),随后N
行,每行给出一个小于231的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes
,否则输出No
。
输入样例:
2
11
111
输出样例:
Yes
No
解题报告:
1:判断素数的方法有开根号,6法判素,快速筛法,埃式筛法,随机算法等。
2:当n为1时输出的时No,即不是素数。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll judge(ll n){
ll nn = sqrt(n);
if(n==2 || n==3)return 1;
if(n==1 || (n%6!=1 && n%6!=5))return 0;
for(ll i=5; i<=nn; i+=6)
if(n%i==0 || n%(i+2)==0)return 0;
return 1;
}
int main(){
ll n, t;
scanf("%lld", &t);
while(t--){
scanf("%lld", &n);
if(judge(n))printf("Yes\n");
else printf("No\n");
}
}