c++找出a b区域之间所有回文素数并输出

编译错误,求大神帮看
#include
#include
using namespace std;
int main() {
int a,b,n;
cin>>a>>b;
for(n=a;n<=b;n++)
{
bool p(long m)
{
m=n;
int s=0;
while(m>0)
{
s=s*10+m%10;
m=m/10;
}
if(s==n) return 1;
else return 0;
}
if (p==1)
{
for (int k=2;k<n;k++)
if(n%k==0)break;
if(k==n-1) cout<<n<<endl;
}

}

return 0;
}

c++

3个回答

那个头文件是有的,只是复制过来没了

C 函数内部,不能定义函数
C++也只是几种特例,才可以

1)函数内部的类型(struct,class)定义内部定义函数
2)C++11 lamda 表达式

lm_whales
lm_whales 只需要判断有限个回文数是否素数就可以了,你是不是先判素数,然后判断的回文啊
大约 4 年之前 回复
weixin_32559731
weixin_32559731 回复lm_whales: 嗯嗯,我知道了,就是把bool那的花括号去掉然后int m,但为什么我运行就超时了
大约 4 年之前 回复

那个判断是否是回文数的函数写在主函数外面然后调用就可以了吧,个人建议,如果a b不是太大的话,建议素数标记打表,然后判断是不是素数,如果是再调用判断是否是回文数的函数

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问