解题思路:既是素数又要是回文,我就用了两个调用---素数和回文。这样,每循环一个数可用调用直接判断是否是素数,回文。当且仅当这个数既是回文又要是素数时,即可输出该数。否则执行下一个循环,判断下一个数是否为素数回文数。直到b结束。我不想用数组表示,所以回文数的判断可能会给你新思路。每判断一次左右对称的数是相等的话,将该数去头去尾,进行下一次判断。直到将该数的对称位数判断完。

注意事项:理清如何判断素数,如何判断回文数。注意数型,中间用了两次强制转换。也算是学到了点东西。其他没啥挺简单的。注:因为此题是数字可以不用数组判断回文数,若为字符串,则需用数组。

参考代码:

#include<stdio.h>
#include<math.h>
int sushu(int a)
{
 int i,t=1;
 for(i=2;i<=sqrt(a);i++)
 {
  if(a%i==0)
  {
  t=0;
  break;
  }
 }
 return t;//t==1时为素数;
}
int huiwen(int a)
{
 int j,k=1,n=0,x;
 x=a;
 while(x>0)
 {
  x=x/10;n++;
 }
  while(n>1)
  {
   
   if(a%10==a/(int)pow(10,n-1))
       {
       a=a%(int)pow(10,n-1);a=a/10;n=n-2;
       }
      if(a%10!=a/pow(10,n-1))  {
            k=0;break;
            }
  }
  

 return k;//k==1时为回文
}
int main()
{
 int a,b,i;
 scanf("%d%d",&a,&b);
 for(i=a;i<=b;i++)
 {
  if(sushu(i)==1&&huiwen(i)==1) printf("%d\n",i);
 }
 return 0;
}

点赞(1)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论