ACM UVA-10235

題目

//ignore header files
int main(int argc, char const* argv[])
{
    bool N[2000000];
    N[0] = true;
    N[1] = true;
    for(unsigned long long i = 2;i <2000000;i++){
        if(!N[i]){
            for(unsigned long long j = i+i;j<2000000;j = j+i){
               N[j] = true; 
            }
        }
    }
    int n;
    while(~scanf("%d",&n)){
        int p = 1;
        int k = n;
        if(!N[n]){
        while(k/10 != 0){
            k = k/10;
            p = p*10;
        }
        k = n;
        int nn = 0;
        while(k != 0){
           nn = nn+(k%10)*p; 
           k = k/10;
           p = p/10;
        }
        //printf("%d\n",nn);
        if(!N[nn] && nn != n){
           printf("%d is emirp.\n",n) ;
        }else{
            printf("%d is prime.\n",n);
        }
        }else{
            printf("%d is not prime.\n",n);
        }
    }

    return 0;
}