#include<stdio.h>
#include<math.h>
#define max 1000001
long long int arr[max];
int sieve()
{
int i,j;
for(i=2; i<=max; i++)
{
arr[i]=1;
}
for(i=2; i<=sqrt(max); i++)
{
for(j=2; i*j<=max; j++)
{
arr[i*j]=0;
}
}
}
long long int reverse1(long long int N)
{
long long int reverse=0;
while(N!=0)
{
reverse=reverse*10+(N%10);
N=N/10;
}
return reverse;
}
int main()
{
long long int a,b,c,N,reverse;
sieve();
while(scanf("%lld",&N)==1)
{
c=N;
reverse=reverse1(N);
a=0;
if(arr[N]==1)
{
a++;
}
b=0;
if(arr[reverse]==1)
{
b++;
}
if(a==0)
{
printf("%lld is not prime.\n",c);
}
else if((N==reverse)||(a>0&&b==0))
{
printf("%lld is prime.\n",c);
}
else
{
printf("%lld is emirp.\n",c);
}
}
return 0;
}
#include<math.h>
#define max 1000001
long long int arr[max];
int sieve()
{
int i,j;
for(i=2; i<=max; i++)
{
arr[i]=1;
}
for(i=2; i<=sqrt(max); i++)
{
for(j=2; i*j<=max; j++)
{
arr[i*j]=0;
}
}
}
long long int reverse1(long long int N)
{
long long int reverse=0;
while(N!=0)
{
reverse=reverse*10+(N%10);
N=N/10;
}
return reverse;
}
int main()
{
long long int a,b,c,N,reverse;
sieve();
while(scanf("%lld",&N)==1)
{
c=N;
reverse=reverse1(N);
a=0;
if(arr[N]==1)
{
a++;
}
b=0;
if(arr[reverse]==1)
{
b++;
}
if(a==0)
{
printf("%lld is not prime.\n",c);
}
else if((N==reverse)||(a>0&&b==0))
{
printf("%lld is prime.\n",c);
}
else
{
printf("%lld is emirp.\n",c);
}
}
return 0;
}
0 comments: (+add yours?)
Post a Comment