2655 - 傲娇数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

众所周知素数是除了1和本身再不能被其他数整除的数,但是呢,吴壕特别傲娇,他定义了一个新的数,他说这种数除了1和自己以为有且仅有一个数能整除它,并且把这个数字称为傲娇数。

题目输入

下面给定一个数n(1<=n<=10^5)代表有n个数,然后有n个整数xi(1<=xi<=10^12)判断xi是否为傲娇数,如果是输出YES,否则输出NO。


<br />

题目输出

判断xi是否为傲娇数,如果是输出YES,否则输出NO。

<br />

输入/输出样例

输入格式

3 
4 5 6

输出格式

YES
NO
NO

C语言解答

#include<stdio.h>

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        while(n--)
        {
            long long k,i,j=0;
            scanf("%lld",&k);
            for(i=2;i*i<=k;i++)
            {
                if(i*i==k)
                {
                    printf("YES\n");j=1;break;
                }
                if(k%i==0)
                {
                    printf("NO\n");j=1;break;
                }
            }
            if(j==0)
                 printf("NO\n");
        }
    }return 0;
}

C++解答

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
bool check(int n)
{
    int i;
    if(n==1) return false ;
    if(n==2) return true;
    for(i=2;i*i<=n;i++)

         {
              if(n%i==0)
             return false;
         }

       return true;

}

int main()
{
    int n;
    long long x;
    int i;
   long long  a;
    cin>>n;
    while(n--)
    {
        cin>>x;

        a=sqrt(x);
        if(a*a==x&&check(a))
            cout<<"YES"<<endl;
            else
            cout<<"NO"<<endl;

    }
    return 0;



}