2655 - 傲娇数
时间限制 : 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; }