解题思路:既是素数又要是回文,我就用了两个调用---素数和回文。这样,每循环一个数可用调用直接判断是否是素数,回文。当且仅当这个数既是回文又要是素数时,即可输出该数。否则执行下一个循环,判断下一个数是否为素数回文数。直到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;
}
0.0分
0 人评分
WU-输出正反三角形 (C++代码)浏览:1100 |
DNA (C语言描述,数据结构)浏览:909 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:895 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:416 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:1108 |
班级人数 (C语言代码)浏览:981 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:751 |
C语言训练-字符串正反连接 (C语言代码)浏览:653 |
IP判断 (C++代码)浏览:787 |
C语言程序设计教程(第三版)课后习题8.2 (C++代码)浏览:671 |