PTA L1-028 判断素数 (10分)

题目描述:

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:

输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2​31​​的需要判断的正整数。

输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出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");
    }
}
发布了109 篇原创文章 · 获赞 2 · 访问量 4564

猜你喜欢

转载自blog.csdn.net/jun_____/article/details/104014358