[USACO1.5]回文质数 求助 逻辑没问题 运行就re

z729063706 2017-03-24 01:08:50
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
/*--------------------*/
int a,b;
bool hw(int i)
{
if (i%2==0) return 0;
char h[100000000];
sprintf(h,"%d",i);
int len=strlen(h);
int m=0;
for (int o=len;o>=len/2+1;o--)
{
if (h[o]!=h[m]) return 0;
m++;
}
return 1;
}
bool zs(int i)
{
for (int o=0;o<=sqrt(i);o++)
{
if (i%o==0) return 0;
}
return 1;
}
int main()
{
scanf("%d%d",&a,&b);
for (int i=a;i<=b;i++)
{
bool m=hw(i);
bool n=zs(i);
if (m==0) continue;
if (n==0) continue;
printf("%d",i);
}
return 0;
}



这是一道函数题,逻辑应该没有太大问题,但是运行就出错
因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。

写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;
...全文
84 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yshuise 2017-03-24
  • 打赏
  • 举报
回复
char h[100000000]; ============== 越界了,char最大256
mxway 2017-03-24
  • 打赏
  • 举报
回复
if (i%o==0) return 0; o为0时,你的机器上不会程序不会崩吗?

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧