描述:
判断一个数是否为对称且不大于五位数的素数。
输入:
输入数据两行,第一行一个整数n,满足1<n<60。
第二行有n个的正整数x(0 < x < 2^32) , 以空格分隔。
输出:
对于每个x,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。
样例输入:
3
11 101 272
样例输出:
Yes
Yes
No
注释:
请注意Yes和No首字母需要大写。
#include <stdio.h>
int judge(int x){
int i=0,j,a[5],n=0;
int judge=1;
if(x>99999){
judge=0;
}else if(x==1){
judge=0;
}
else{
while(x>0){
a[i++]=x%10;
x/=10;
n++;
}
i=0;
j=n-1;
while(i<j){
if(a[i++] != a[j--]){
judge=0;
break;
}
}
return judge;
}
}
int prime(int n){
int isprime=1;
if(n==1) isprime=0;
if(n==2) isprime=1;
for(int i=2;i<n;i++){
if(n%i==0){
isprime=0;
break;
}
}
return isprime;
}
int main(){
int n,a[60];
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=0;i<n;i++){
if(judge(a[i])&&prime(a[i])){
printf("Yes\n");
}
else printf("No\n");
}
return 0;
}
附:南邮NOJ在线测评系统网址:主页 | NOJ上机系统
祝大家心想事成,一战成硕!!!❤❤❤