C++
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,i;
while(cin>>n)//輸入數字
{
int em=1,cn1=n,cn2=0;
for(i =2;i<=sqrt(n);i++)//判斷輸入的數是否為質數
{
if(n%i==0)//不是質數
{
em=0;
break;
}
}
if(em==1)//如果輸入的數是質數就翻轉它
{ //再判斷翻轉的數是不是質數
while(cn1>0)//翻轉數字
{
cn2=cn2*10+cn1%10;
cn1=cn1/10;
}
if(cn2!=n)//翻轉後的數不能和原本的一樣
{
em=2;
for(i =2;i<=sqrt(cn2);i++)//判斷該數是否為質數
{
if(cn2%i==0)
{
em=1;
break;
}
}
}
}
if(em==2)//兩個數都是質數
{
cout<<n<<" is emirp."<<endl;
}
else if(em==1)//原來的數是質數
{
cout<<n<<" is prime."<<endl;
}
else//兩個都不是
{
cout<<n<<" is not prime."<<endl;
}
}
return 0;
}
請先 登入 以發表留言。