任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为回文素数。求1000以内的所有回文素数。
只能使用顺序结构,选择结构,循环结构和数组,函数在本题不允许
我目前只写出了判断回文数的代码,如下:
#include<stdio.h>
#include<math.h>
int main()
{
int m,a[100],b[100],i=0,j=0,n=0,c,k,l,sum;
scanf("%d",&m);
l=m;
while(m>10)
{
m/=10;
n++;
}
m=l;
n+=1;
k=n-1;
while(m>0)
{
a[i]=m%10;
i++;
m=m/10;
}
m=l;
while(m>0)
{
c=pow(10,k);
b[j]=m/c;
m=m-b[j]*c;
k=k-1;
j++;
}
m=l;
sum=0;
for(i=0;i<n;i++)
{
if(a[i]==b[i])
{
sum=+1;
}
}
}
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
C语言输出1000 以内的所有回文素数
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2022-04-05 10:21关注
你这复杂了,将整数不断求余10,余数乘以循环相加,最后两数相等就是回文
另外你要确定一下个位数算不算#include <stdio.h> int main() { int i,j,hw=0,k; for(i=2;i<1000;i++) { for(j=2;j<i;j++) { if(i%j==0) break; } if(j!=i) continue; k = i; hw = 0; while(k>0) { hw = hw*10+k%10; k = k/10; } if(hw== i) printf("%d ",i); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 11无用 3
悬赏问题
- ¥15 网络科学导论,网络控制
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)