编写程序求出100到999之间的无暇素数. 10

无暇素数是指本身为素数,其逆序数也是素数,要求编写两个函数,分别用来求逆序数和判定素数.... 无暇素数是指本身为素数,其逆序数也是素数,要求编写两个函数,分别用来求逆序数和判定素数. 展开
 我来答
985967518
推荐于2017-12-16 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109860
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

所谓无暇素数是指本身为素数,且其逆序数也是素数的数。

例如:

//参考代码如下:
#include<stdio.h>
#include<math.h>
int main ( )
{
 int n,a,b,c,k,d,i,flag;
 for(n=100;n<=900;n++)//从100-900依次判断是否是无暇素数 
 {
  flag=1;
  k=(int)sqrt(n);
  for(i=2;i<=k;i++)//先判断n是否为素数 
  {
   if(n%i==0)
   flag=0;
   }
   if(flag)//如果n为素数,计算n的逆序数 
   {
    a=n%10;
    b=n/10%10;
    c=n/100;
    d=a*100+b*10+c;
    k=(int)sqrt(d);
   for(i=2;i<=k;i++)//判断逆序数是否为素数 
   {
    if(d%i==0)
    flag=0;
   }
      if(flag)//均为素数输出该数(无暇素数) 
      printf("%d ",n);
   }
}    
printf("\n");
return 0;
}
/*运行结果
101 107 113 131 149 151 157 167 179 181 191 199 311 313 337 347 353 359 373 383
389 701 709 727 733 739 743 751 757 761 769 787 797 
*/
阳光上的桥
2015-04-03 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65806
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

程序代码(函数f1判断素数,f2转换逆数):

#include<stdio.h>
int f1(int x){
  int i;
  for (i=2;i<x;i++) if (x%i==0) return 0;
  return 1;
}
int f2(int x){
  int y=0;
  while(x){
    y=y*10 + x%10;
    x=x/10;
  }
  return y;
}
main(){
  int i;
  printf("\n");
  for (i=100;i<=999;i++)
    if (f1(i) && f1(f2(i)))
      printf("%d\t",i);
}

 

 

输出结果:

101     107     113     131     149     151     157     167     179     181
191     199     311     313     337     347     353     359     373     383
389     701     709     727     733     739     743     751     757     761
769     787     797     907     919     929     937     941     953     967
971     983     991

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式