题目描述
现在给定两个整数a,b,请你找出在[a,b]范围内的所有回文质数。
弱鸡C++代码
参考麻瓜大佬代码
#include<iostream>
using namespace std;
bool hw(int n)
{
int a[10],k=0;
if(n<10) return true;
while(n>=10)//把每一位提取出来
{
a[k]=n%10;
n/=10;
k++;
}
a[k]=n;
for(int i=0;i<=k;i++)
if(a[i]!=a[k-i]) return false;//判断回文
return true;
}
bool zs(int n)//用试除法判断质数
{
if(n<2) return false;
for(int i=2;i<=n/i;i++)
if(n%i==0) return false;
return true;
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
if(n%2==0) n++;
if(m>9999999) m=9999999;//一定要加,不然会超时
for(int i=n;i<=m;i+=2)
if(hw(i)&&zs(i)) printf("%d\n",i);
}
这个超时不给限制的话,就没有其它的解决办法了吗?