判断素数

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

输入格式:

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

输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出“Yes”,否则输出“No”。

输入样例:
2
11
111
输出样例:
Yes
No

提交代码

这一题,我给出两种方法,第一种用时长,第二种用时短。

#include
long long int su(long long int a)
{
    int iA,f=0;
    for(i=2;i     {
        if(a%i==0)
        {
            f=1;
        }
    }
    return f;
}
int main()
{
    int n,i,j;
    long long int a;
    scanf("%d",&n);
    for(i=0;i     {
        scanf("%lld",&a);
        if(a>1)
        {
            if(su(a)==0)
            {
                printf("Yes\n");
            }
            else
            {
                printf("No\n");
            }
        }
        else
        {
            printf("No\n");
        }
    }
    return 0;
}


#include
#include
int main(){
    int N,i,k;
    long x;
    scanf("%d",&N);
    while(N--)
    {
        k=0;
        scanf("%ld",&x);
        for(i=2;i<=sqrt(x);i++)
        {
             if(x%i==0)
             {
                 k=1;
                 printf("No\n");
                 break;
             }
         }
         if(k==0)
         {
             printf("Yes\n");
         }
         if(x==1)
         {
             printf("No\n");
         }
     }
     return 0;
 }

你可能感兴趣的:(ACM题)