最后一个tle,把除了11以外长度为偶数的回文数都不是质数也加上了,还是没过
查看原帖
最后一个tle,把除了11以外长度为偶数的回文数都不是质数也加上了,还是没过
331574
Mrfs楼主2023/5/8 20:11

大佬们咋改呀,下面是完整代码...

#include<iostream>
#include<math.h>

using namespace std;

bool isHw(int x)
{
    string strx = to_string(x);
    int len = strx.length()-1;
    for(int i=0;i<=len/2;i++)
    {
        if(strx[i] != strx[len-i]) return false;
    }
    
    // 优化  除了 11 以外 长度为偶数的回文数都不是质数
    if(x != 11 && (len+1)%2 == 0) return false;
    return true;
}

int main()
{
    int x,y;
    cin >> x >> y;

    if(x%2 == 0) x ++;
    for(int i=x;i<=y;i+=2)
    {
        if(isHw(i))
        {
            bool flag = true;
            for(int j = 2;j<int(sqrt(i))+1;j++)
                if(i%j == 0) 
                {
                    flag = false;
                    break;
                }
            if(flag) cout << i << endl;
        }
    }

    return 0;
}
2023/5/8 20:11
加载中...