编辑代码

#include<iostream>
#include<math.h>
#include<stdlib.h>
#include<malloc.h>
using namespace std;


bool iszhishu(int n)
{
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
        return false;
    }
    return true;
}
bool isduicheng(int n)
{
    if(n==1||n==0)
    return false;
    if(n>=2&&n<=9)
    return true;
    if(n>=100000)
    return false;
    //判断对称情况
    int temp=n,i=0;
    int *digit;
    while(temp!=0)
    {
        digit[i]=temp%10;
        temp=temp/10;
        i++;
    }
    temp=0;
    int k=i-1;
    for(int j=0;j<k;j++)
    {
        temp=int(pow(10,i-1))*digit[j]+temp;
        --i;
    }
    if(temp==n)
      return true;
}

int main()
{
    int n,i;
    cin>>n;
    int *a = (int *)malloc(n*sizeof(int));
    for(int i=0;i<n;i++)
      cin>>a[i];
    for(i=0;i<n-1;i++)
    {
        if(((isduicheng(a[i])==true)&&(iszhishu(a[i])==true)))
        cout<<"Yes ";
        else 
        cout<<"No ";
    }
    if(i==n-1)
    {
       if(((isduicheng(a[i])==true)&&(iszhishu(a[i])==true)))
        cout<<"Yes";
        else 
        cout<<"No";
    }
    return 0;
}