解题思路:既是素数又要是回文,我就用了两个调用---素数和回文。这样,每循环一个数可用调用直接判断是否是素数,回文。当且仅当这个数既是回文又要是素数时,即可输出该数。否则执行下一个循环,判断下一个数是否为素数回文数。直到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 人评分
【亲和数】 (C语言代码)浏览:858 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:755 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:540 |
C语言训练-大、小写问题 (C语言代码)浏览:724 |
IP判断 (C语言代码)浏览:763 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:916 |
关于C语言变量位置的问题浏览:272 |
1014题解浏览:485 |
C语言训练-亲密数 (C语言描述,反正怎么都能对)浏览:2165 |
IP判断 (C语言代码)浏览:534 |