1. 构造回文数,每次乘10然后加新尾数,新尾数为将截断末位数(即除10)之后的原数依次取末尾数(即对10取余)。
2. 检验素数,注意时间复杂度
#include <stdio.h>
#include <math.h>
int isprime(long long n){  //检验素数的函数
    int i;
    if(n < 2)
        return 0; //1不是素数
    for(i = 2; i<sqrt(n); i++)  //用sqrt(n),而不直接用n,更快
        if(n % i == 0)
            return 0;
    return 1;  
}
long long creat(long long t){  //用long long, 而不用int
    long long a = t;
    while(a > 9){
        a = a / 10;  //用于下一步的截取末位数
        t = t * 10 + a % 10;  //乘10加新尾数
    }
    return t;
}
int main(){
    long long t = 0;
    scanf("%ld", &t);
    t = creat(t);
    if(isprime(t))
        printf("prime\n");
    else
        printf("noprime\n");
    return 0;
}