C语言 素数回文数的个数素数回文数的个数

题目要求素数回文数的个数素数回文数的个数查看提交统计提问时间限制:1000ms内存限制:65536kB描述判断11到任何一个小于1000大于11的整数之间,既是素数又是回... 题目要求

素数回文数的个数素数回文数的个数查看 提交 统计 提问 时间限制: 1000ms 内存限制: 65536kB
描述
判断11到任何一个小于1000大于11的整数之间,既是素数又是回文数的整数的个数。
输入
输入大于11小于1000的整数。
输出
11到输入的这个数之间的既是素数又是回文数的个数。
样例输入
999
543样例输出
16
10

我的代码
#include<stdio.h>
int main()
{
int n,i,a,b,k=0,j;
while(scanf("%d",&n)!=EOF)

for(i=11;i<n;i++)

{
for(j=1;j<=n;j++)
{
if(i%j!=0)
{
if(i<=99)
{
a=i%10;
b=i/10;
}
else
{ a=i%100;
b=i/100;
}
}
}
if(a==b)

k++;
printf("%d\n",k);
}
return 0;
}
展开
 我来答
myhz1988
推荐于2017-12-15 · TA获得超过3260个赞
知道小有建树答主
回答量:316
采纳率:100%
帮助的人:124万
展开全部
main()
{
int x,y,a,b,c=0,n,i,pd=1,sh,js=1;
printf("input number:\n");
scanf("%d",&sh);
printf(" x=11 ");
for(x=11;x<=sh;x++)
{for(i=2;i<x/2;i++)
if(x%i==0) { pd=0;break;}
if(pd)
{ y=0;
a=b=n=x;
while(n!=0)
{n=n/10;
y++;
}
y=y/2;
for(i=1;i<=y+1;i++)
a=a/10;
for(i=1;i<=y;i++)
{c=c*10+b%10;
b=b/10;
}
if (a==c) {printf(" x=%d ",x) ;js++;}
}
pd=1;
c=0;
}
printf("sh=%d,js=%d\n",sh,js);
}
任意偶数长度的回文数都不可能是素数(除11以外),因为它都能被11整除,而11却是素数;所以js的初值为1,测试通过
追问
嫩个。。。sh=1是啥意思额。。刚开始学没多久。。不懂啊不懂。。。大仙再指教下吧。。。谢谢嘿嘿
追答
哪有sh=1,是js=1吧,sh表示你输入的数,就是你的999和543等,js就是里面回文素数的个数了,本来应该是0的,但是11是回文素数,所以先讲将js=1,因为偶数长度的不可能是回文数,下面的程序就不判断偶数位的了,不赋值1的话,就会少一个了,也就是少了11,如果有兴趣,你去研究下,也可以改下程序,让js=0,程序运行通过了吧?我这里是通过了,将回文素数都显示出来了^_^
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式