现在给出一个素数,这个素数满足两点:
1、 只由1-9组成,并且每个数只出现一次,如13,23,1289。
2、 位数从高到低为递减或递增,如2459,87631。
请你判断一下,这个素数的回文数是否为素数(13的回文数是131,127的回文数是12721)。
输入描述: 输入只有1行。 第1行输入一个整数t,保证t为素数。 数据保证:9<t<109 输出描述: 输出一行字符串,如果t的回文数仍是素数,则输出“prime”,否则输出"noprime"。
输入
13
输出
prime 说明
13的回文数是131,131是素数 代码如下:
#include<iostream>
#include<cmath>
long long i;
long long n;
using namespace std;
void prime(long long n)//判断n的回文数是否为素数
{
int flag=1;
if(n==1)
{flag=0;
cout<<"noprime";
}
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=0;
cout<<"noprime";//如果是不是素数打印
break;
}
}if(flag)cout<<"prime";//如果是素数打印
}
void f(long long n)//将n转换成它的回文数,求出倒置后的数字 例如123 则倒为321
{
{
long long n1=n,sum=1;
while(n1>10)
{
n1=n1/10;
sum++;
}n1=n/10;
for(i=1;i<sum;i++)
{
int d=n1%10;
n=n*10+d;
n1=n1/10;
}
prime(n);
}
int main()
{
cin>>n;
f(n);
return 0;
}