题目描述
LL非常喜欢回文串,就像LL的名字也是回文的,什么是回文串呢?就是从左向右读和从右向左读是一样的(例如:a,aa,aba,abccba….这些都是回文的);当然,如果一些数字是回文的,我们称这些数字是回文数,如:1,121,12321….
现你一个整数,判断该整数是否既是素数又是回文数。若是,输出“Yes”,否则输出“No”。
输入
一个正整数n(n在int范围内)
输出
判断该n是否既是素数又是回文数。若是,输出“Yes”,否则输出“No”。
样例输入 Copy
11
样例输出 Copy
Yes
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <math.h>
int f(int x)
{
int i,k;
k=sqrt(x);
if(x==1)
return 0;
for(i=2;i<=k;i++)
{
if(x%i==0)
return 0;
}
return 1;
}
int e(int n)
{
int k,x=1,i,sum=0;
k=log10(n)+1;
for(i=1;i<k;i++)
x*=10;
for(i=1;i<=k;i++)
{
sum+=n%10*x;
n/=10;
x/=10;
}
return sum;
}
int main()
{
int n,k=0;
scanf("%d",&n);
if(f(n)==1)
{
if(e(n)==n)
printf("Yes\n");
else
printf("No\n");
}
else
printf("No\n");
return 0;
}