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";

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 23:15
已编辑
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 23:16
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务