提交了5次,前四次TLE,优化后 #3 WA了,求错因
查看原帖
提交了5次,前四次TLE,优化后 #3 WA了,求错因
1035564
ChenMoyan6楼主2023/7/19 15:11

用的暴力枚举,优化了几个地方:

  1. 从偶数开始,每次+2,排除奇数
  2. 先判断回文,再判断质数
  3. 跳过偶数位的数(除了2位数)
  4. 运行到9989899(后面没了)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
if(a%2==0) a++;//优化1.
b=min(9989899,b);//优化4.
for(int i=a;i<=b;i+=2)//优化1.
{
    int k=i,t=0,ws=0;
    while(k)
    {
        t=t*10+k%10;
        k/=10;
        ws++;
    }
    if(ws%2==0&&ws!=2)
        i=i*10+1;//优化3.
    if(t==i)//优化2.
    {
        bool zs=1;
        for(int j=3;j*j<=i;j+=2)
            if(i%j==0) zs=0;
        if(zs==1)
            cout<<i<<"\n";
    }
}
return 0;
}

c++谢谢

解释得这么清楚,看得懂吧

2023/7/19 15:11
加载中...