总时间限制:
1000ms
内存限制:
65536kB
-
描述
-
求11到n之间(包括n),既是素数又是回文数的整数有多少个。
输入
- 一个大于11小于1000的整数n。 输出
- 11到n之间的素数回文数个数。 样例输入
-
23
样例输出
-
1
提示
- 回文数指左右对称的数,如:292,333。 来源
- 06计算概论课
- 这题考察的是无数和回文数的的综合,我自定义了两个判断函数,在主函数里面调用,比较简单明了,若还有更好的方法欢迎提意见。
-
#include<stdio.h>
int sp(int n)//素数判断函数
{
int j;
for(j=2;j<n;j++)
{
if(n%j==0)
break;
}
if(n==j)
return 1;
else
return 0;
}
int hp(int n)//回文数判断函数
{
int w=0,j,r=0,a[5]={0};
while(n)
{
a[w++]=n%10;
n/=10;
}
for(j=0;j<w;j++)
{
if(a[j]==a[w-j-1])
r=1;
else
{
r=0;
break;
}
}
if(r==1)
return 1;
else
return 0;
}
int main()
{
int n,i,s=0,h=0,l=0;
scanf("%d",&n);
for(i=11;i<=n;i++)
{
h=sp(i);//调用素数判断函数
l=hp(i);//调用回文数判断函数
if(h==1&&l==1)
s++;
}
printf("%d",s);
return 0;
}