Problem Type : Number Theory
#include<stdio.h>
#include<math.h>
#include<string>
using namespace std;
bool isprime(long long n)
{
bool count=true;
long int p,i;
if(n==1)
return false;
p=sqrt(n);
for(i=2; i<=p; i++)
{
if(n%i==0)
return false;
}
return count;
}
int main()
{
long long int n,m,i,k,count,sum=0,l,p,x,y,z;
bool c;
double j;
while(scanf("%lld",&n)==1)
{
sum=0;
c=isprime(n);
if(c==true)
{
count=0;
p=n;
for(i=0; ; i++)
{
l=p%10;
if(p==0)
break;
p=p/10;
count++;
}
k=n;
l=0;
sum=0;
for(i=0;;i++)
{
l=k%10;
--count;
k=k/10;
j=l*(pow(10,count));
x=(int)(j);
sum=sum+x;
if(k==0)
break;
}
c=isprime(sum);
if(c==true && n!=sum)
{
printf("%lld is emirp.\n",n);
}
else if (c==false || c==true && n==sum)
{
printf("%lld is prime.\n",n);
}
}
else if(c==false)
{
printf("%lld is not prime.\n",n);
}
}
return 0;
}
#include<stdio.h>
#include<math.h>
#include<string>
using namespace std;
bool isprime(long long n)
{
bool count=true;
long int p,i;
if(n==1)
return false;
p=sqrt(n);
for(i=2; i<=p; i++)
{
if(n%i==0)
return false;
}
return count;
}
int main()
{
long long int n,m,i,k,count,sum=0,l,p,x,y,z;
bool c;
double j;
while(scanf("%lld",&n)==1)
{
sum=0;
c=isprime(n);
if(c==true)
{
count=0;
p=n;
for(i=0; ; i++)
{
l=p%10;
if(p==0)
break;
p=p/10;
count++;
}
k=n;
l=0;
sum=0;
for(i=0;;i++)
{
l=k%10;
--count;
k=k/10;
j=l*(pow(10,count));
x=(int)(j);
sum=sum+x;
if(k==0)
break;
}
c=isprime(sum);
if(c==true && n!=sum)
{
printf("%lld is emirp.\n",n);
}
else if (c==false || c==true && n==sum)
{
printf("%lld is prime.\n",n);
}
}
else if(c==false)
{
printf("%lld is not prime.\n",n);
}
}
return 0;
}
No comments:
Post a Comment