请问这道问题用c++怎么求?——一个初中生

[http://1.14.136.201/problem.php?cid=1166&pid=5(http://1.14.136.201/problem.php?cid=1166&pid=5)]
判断两位数的质数
时间限制:1.000s 内存限制:16MB

输入一个两位数n,如果这个数是质数,把它倒序后也是质数就输出yes,否则输出no
如:输入31,输出yes 因为31是质数,倒序后13也是质数
输入23,输出no
输入格式
一个两位整数
输出格式
yes或no
样例输入
13
样例输出
yes
我的错误代码:

#include<bits/stdc++.h>
using namespace std;
int main() {
    long long a=0;
    long long n;
    long long i=2;
    scanf("%d",&n);
    int ge=n%10;
    int shi=n%100/10;
    int nx=ge*10+shi;
    for(int i=2; i<n; i++) {

        if((n%i==0)) {
            if((nx%i==0)) {
                a++;
            }
        }

    }
    if(a==0) {
        printf("yes", n);
    } else if(a==0||a==1) {
        printf("no",n);
    } else {
        printf("no", n);
    }
    return 0;
}


请问代码是什么?Thanks!

int isprime(int n)
{
    if(n<=1)
      return 0;
    for(int i=2;i*i<=n;i++)
      if(n%i==0)
        return 0;
   return 1;
}

int main()
{
  int n,m;
  scanf("%d",&n);
  m=(n%10)*10+n/10;
  int a = 1,b=1,i;
  for(i=2;i*i<=n;i++)
    if(n%i==0)
        a = 0;
  for(i=2;i*i<=m;i++)
    if(m%i==0)
      b=0;
  if(a==0 && b==0)
     printf("yes");
  else
    printf("no");
  return 0;
}

那么代码是什么?