pta twins问题求解,没思路 c语言

Twins (20 分)
Jacky最近迷上素数,他通过观察发现,很多素数倒着读也是素数,有点像孪生兄弟,比如13是素数,31也是素数,再比如107是素数,701也是素数,请你帮忙Jacky测试某个素数是否有孪生兄弟。

输入格式:
输入一个素数n(n<10000)

输出格式:
如果n有孪生兄弟,输出“Yes”,否则,输出“No”

输入样例:
13
结尾无空行
输出样例:
Yes
结尾无空行

一个实现:


#include <stdio.h>

int main(void){
    
    int num,twins;
    int i,j=1;
    int k=1; 
    int start= 0;
    
    //读入一个数 
    scanf("%d",&num);
    
    int temp;

    //分解千位 
    temp=num/1000;
    
    //千位不为0,则读入twins,同时标志数已经开始,将开始标志设为1 
    if(temp!=0){
        twins+=temp*k;
        start = 1;
    //    printf("千位:%d\n",twins);
    }
    
    //分解百位 
    temp= num/100%10;
    //如果已经有数,将分解数的权值乘以10  
    if (start==1){
        k*=10; 
    }
    
    //百位不为0,则读入twins,同时标志数已经开始,将开始标志设为1 
    if(temp!=0){
        twins+= temp*k;
        start=1;
    //    printf("百位:%d\n",twins);
    }    
    
    //分解十位 
    temp = num/10%10;
    
    //如果已经有数,将分解数的权值乘以10  
    if (start==1){
        k*=10; 
    }
    
    //十位不为0,则读入twins,同时标志数已经开始,将开始标志设为1 
    if(temp!=0){
        twins+=temp*k;
        start=1;
    //    printf("十位:%d\n",twins);
    }
    
    //分解个位 
    temp = num%10;
    //如果已经有数,将分解数的权值乘以10  
    if (start==1){
        k*=10; 
    }
    
    //个位不为0,则读入twins,同时标志数已经开始,将开始标志设为1 
    if(temp!=0){
        twins += temp *k;
    //    printf("个位:%d\n",twins);
    }
    
//    printf("twins=%d\n",twins);
    
    //判断孪生数是否为素数,并打印结果 
    for(i=2;i<twins;i++){
        if(twins%i==0){
            j=0;
            printf("No");
            break;
        }
    } 

    if(j==1){
        printf("Yes");
    }
    
    return 0;
    
}
#include <stdio.h>
int IsPrime(int n)
{
    int i;
    if (n==2)
        return 1;
    if (n%2==0)
        return 0;
    for(i=3; i<=sqrt(n); i+=2)
        if (n%i==0)
            return 0;
    return 1;
}

int daozhi(int a)
{
    int t,s=0,sum=0;
    while(a)
    {
        t=a;
        a=a/10;
        s=t-10*a;
        sum=sum*10+s;
    }
    return sum;
}
int main()
{
    int n;
    scanf("%d",&n);
    if(IsPrime(daozhi(n)))
    {
        printf("Yes");
    }
    else
    {
        printf("No");
    }
    return 0;
}