#include <iostream> #include <cstdio> #include <vector> #include <sstream> #include <algorithm> #include <bitset> #define MAX 1000000 using namespace std; bitset<MAX+1> bs; void seive(){ bs.set(); bs[0]=false, bs[1]=false; for (long long int i=2; i<=bs.size(); ++i){ if (bs[i]==true){ for (long long int j=i*i; j<bs.size(); j+=i) bs[j]=false; } } return; } int main(int argc, char *argv[]){ seive(); int num, renum, tmp; while(cin>>num){ tmp = num; for (renum=0; tmp; tmp/=10){ renum = renum*10+(tmp%10); } if (bs[num]==true){ if (bs[renum]==true && num!=renum){ printf("%d is emirp.\n", num); } else { printf("%d is prime.\n", num); } } else { printf("%d is not prime.\n", num); } } return 0; }
2014年2月7日 星期五
UVA 10235 - Simply Emirp
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言