Mi Ke??????? 2022-04-05 09:47 采纳率: 66.7%
浏览 1280
已结题

C语言输出1000 以内的所有回文素数

任意的整数,当从左向右读与从右向左读是相同的,且为素数时,称为回文素数。求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;
}
}
}

  • 写回答

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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • 有问必答小助手 2022-04-15 20:10
    关注
    您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
    PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月23日
  • 已采纳回答 4月15日
  • 修改了问题 4月5日
  • 修改了问题 4月5日
  • 展开全部

悬赏问题

  • ¥15 关于PROCEDURE和FUNCTION的问题
  • ¥100 webapi的部署(标签-服务器)
  • ¥20 怎么加快手机软件内部计时的时间(关键词-日期时间)
  • ¥15 C语言除0问题的检测方法
  • ¥15 为什么四分管的内径有的是16mm有的15mm,四分不应该是12.7mm吗
  • ¥15 macos13下 ios交叉编译的问题
  • ¥15 bgz压缩文件怎么打开
  • ¥15 封装dll(引入了pcl的点云设计库)
  • ¥30 关于#开发语言#的问题:我需要在抄板的基础上再抄板抄程序,根据RDA8851CM基础上开发
  • ¥15 oracle 多个括号,怎么删除指定的括号及里面的内容?