C语言问题:请找出小于1000的回文素数

程序该怎么编辑?要详细答案!尽快!!~~一但采纳再追加10分奖赏!... 程序该怎么编辑?要详细答案!尽快!!~~一但采纳再追加10分奖赏! 展开
 我来答
White_MouseYBZ
2017-07-03 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6588万
展开全部

将回文素数2单独处理一下,然后从3开始只考察奇数,这样可以提高时效。自定义一个判断素数和判断回文数的函数,在主函数用一个循环调用这两个函数来完成操作。另,百位为偶数的数可以跳过(因为它的回文数肯定不是素数)。代码如下:

#include "stdio.h"
int prime(int n){//判断n是否为素数
int i;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
int palindrome(int n){//判断n是否为回文数
if(n<10)
return 1;
else if(n<100)
return n%10==n/10 ? 1 : 0;
else
return n%10==n/100 ? 1 : 0;
}
int main(int argc,char *argv[]){
int n,t;
printf("   2");//单独处理2
for(n=3;n<1000;n<12 || ((t=n/100)&1) ? n+=2 : n=t*100+101)//n这样增值可跨过百位为偶数的数,以进一步提高时效
if(palindrome(n) && prime(n))
printf("%4d",n);
printf("\n");
return 0;
}

运行结果如下图L

匿名用户
2013-11-19
展开全部
进行两次循环
第一次是进行加一
第二次循环数一直除1+1直到加到比本身小1
如果能整除
进行下一次循环
反之输出
返回进行下一次循环
这就是思路
如果要例子也可以补充下问题
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-19
展开全部
编写程序,找出大于等于a,并且小于等于b的所有素数回文数。

第一行包括两个正整数a和b(1≤a≤b≤108)。

输出满足条件的所有素数回文数,每行一个数,从小到大的排序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-19
展开全部
#include <stdio.h>
#include <math.h>

int hw(int n) //判断回文数
{
int t,r=0;

for(t=n;t;t/=10) //把n从个位到最高位取反
r=r*10+t%10;
return r==n;
}

int ss(int n) //判断素数
{
int i;

for(i=2;i<=sqrt(n);i++) //从2到n的平方根判断能否被n整除
if(n%i==0)
return 0;
return 1;
}

void main()
{
int i,c=0;

for(i=2;i<1000;i++)
if(hw(i) && ss(i))
{
printf("%5d",i);
if(++c%10==0) //每行输出10个数
printf("\n");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-19
展开全部
#include<stdio.h>
void main()
{
int a,b,c,d,e,f,h;
for(a=1;a<1000;a++)
{for(b=1,c=0;b<=a;b++)<br/> if(a%b==0) c++;<br/> if(c<=2)<br/> {if(a<10)printf("%d ",a);<br/> if(a>=10&&a<100) {d=a%10;e=(a-d)/10;if(d==e) printf("%d ",a);}
if(a>=100&&a<1000){d=a%10;e=a/100;if(d==e)printf("%d ",a);}
if(a>=1000&&a<10000){d=a%10;e=((a-d)/10)%10;f=((a-d-10*e)/100)%10;h=(a-d-10*e-100*f)/1000;if(d==h&&e==f)printf("%d ",a);}}}
}
这样就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式