14
现在给出一个素数,这个素数满足两点:
1、 只由1-9组成,并且每个数只出现一次,如13,23,1289。
2、 位数从高到低为递减或递增,如2459,87631。
请你判断一下,这个素数的回文数是否为素数(13的回文数是131,127的回文数是12721)。
输入描述:
输入只有1行。
第1行输入一个整数t,保证t为素数。
数据保证:9<t<109
输出描述:
输出一行字符串,如果t的回文数仍是素数,则输出“prime”,否则输出"noprime"。
// #include<iostream>
// #include<math.h>
// using namespace std;
// bool prime(long long int t)
// {
// for(int i=2;i<=sqrt(t);i++)
// {
// if(t%i==0)return false;
// }
// return true;
// }
// int main()
// {
// int t;
// cin>>t;
// if(prime(t))
// {
// int temp=t,sum=0,num=0;
// while(temp>0)
// {
// sum++;
// temp/=10;
// }
// temp=t/10;
// int i=sum-2;
// while(temp>0&&i>=0)
// {
// num+=(temp%10)*pow(10,i);
// temp/=10;
// i--;
// }
// if(prime(t*pow(10,sum-1)+num))
// cout<<"prime";
// else
// cout<<"noprime";
// }
// else
// cout<<"noprime";
// }
#include<iostream>
#include<math.h>
#include<string>
using namespace std;
bool isprime(long long int n)
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return false;
}
return true;
}
int main()
{
int t;
cin>>t;
string s=to_string(t);
string s1;
for(int i=s.size()-2;i>=0;i--)
{
s1+=s[i];
}
s+=s1;
long long int n=stoll(s);
if(isprime(n))
{
cout<<"prime";
return 0;
}
cout<<"noprime";
}