大素数

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#include<math.h>
#define N 1000005

long long v[N], a[N], k;

void Isprime()
{
    int i, j;

    for(i=2; i<N; i++)
    {
        if(v[i]==0)
        {
            a[k++]=i;

            for(j=i+i; j<N; j+=i)
                v[j]=1;
        }
    }
}

int Judge(long long n)
{
    int i;

    if(n==0 || n==1)return 0;

    for(i=0; a[i]*a[i]<=n; i++)
        if(n%a[i]==0)
            return 0;
    return 1;
}

int main()
{
    long long n;
    k=0;
    int T;
    scanf("%d", &T);
    Isprime();
    while(T--)
    {
        scanf("%lld", &n);
        int ans=Judge(n);

        if(ans==1)
            printf("Yes\n");

        else
            printf("No\n");
    }
    return 0;
}

 

posted @ 2017-04-05 16:30  爱记录一切美好的微笑  阅读(178)  评论(0编辑  收藏  举报