本人第一篇帖子,主题为P1217的代码求调,调不好就去学新算法了(宜:学新算法 看一遍就懂了) 最后一测试点TLE,其它全AC(QAQ) 代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
bool flag=0;
for(int i=a;i<=b;i++)
{
int x=i,y=0;
flag=0;
while(x!=0)
{
y*=10;
y+=x%10;
x/=10;
}
if(y==i)
{
flag=1;
}
else
{
continue;
}
for(int j=2;j*j<=i;j++)
{
if(i%j==0)
{
flag=0;
}
}
if(flag==1)
{
cout<<i<<endl;
}
}
return 0;
}
讲解一下: 这个不多说了
#include<bits/stdc++.h>//万能头
using namespace std;//命名空间
定义变量
int a,b;//a为起始值,b为终止值
cin>>a>>b;//输入a,b
bool flag=0;//判断是否为回文质数
判断过程
for(int i=a;i<=b;i++)//判断所有数
{
int x=i,y=0;//定义x为i的替身,y为回文下来的数
flag=0;//把是否为回文质数设为不是
while(x!=0)回文开始
{
y*=10;//把y扩大十倍,“迎接”下面加进来的数
y+=x%10;//加进x的个位
x/=10;//把x的个位丢掉
}
if(y==i)//判断是否回文之后跟原来数一样
{
flag=1;//一样的话,把回文质数设为是
}
else//不然
{
continue;结束这次判断
}
for(int j=2;j*j<=i;j++)//判断质数
{
if(i%j==0)//这个不多说了,如果除尽
{
flag=0;//他就不是质数,也不是回文质数
}
}
if(flag==1)//如果最后判断出是回文质数
{
cout<<i<<endl;//输出,换行
}
}
最后的最后
return 0;//养成好习惯
这时间复杂度也不是很高呀 求dalao看到 求dalao回复 求dalao讲解 求dalao不要把我当成xxs