33分超时求助o(╥﹏╥)o

P1217 [USACO1.5] 回文质数 Prime Palindromes

Kmeow @ 2024-03-19 20:57:44

蒟蒻代码
#include <bits/stdc++.h>
using namespace std;
int main(){

    int n,m;
    cin>>m>>n;
    for(int i=m;i<=n;i++)
    {
        bool flag=1; 
        for(int j=m;j<i;j++)
        {
            if(i%j==0)
            {
                flag=0;
                break;
            }
        }
        int j=0,c=i;
        while(c>0)
        {
            j=j*10+c%10;
            c=c/10;
        }
        if (i!=j) flag=0;
        if(flag) cout<<i<<endl; 
    }
    return 0;
}

测评界面(o_o ....?无语)

求改!!!???


by qwertyuiop951357 @ 2024-03-19 21:05:28

@Kmeow flag 变量在质数检测之后立即被覆盖,没必要啊。应该在回文数检测之后设置 flag,然后在质数检测之后再根据 flag 的值来决定是否输出该数。


by LYRT_Subway @ 2024-03-19 21:12:52

1、从奇数开始找,每次+2

2、没有偶数位的回文质数

by题解

如果你要暴力 这也是个好方法

而且你判断回文可以用数组 只要中间有一位不一样就可以break

具体代码实现 大概是这个思路 不保对

bool huiwen(int n)
{
    int a[15]={0},n=1;
    while(n!=0)
    {
        a[15]=n%10;
        n/=10;
        n++;
    }
    for(int i=0;i<n;i++)
    {
        if(a[i]!=a[n-1])
        {
            return 0;
        }
    }
    return 1;
}

by CZY880201 @ 2024-03-19 21:18:41

除了2没有偶质数 判断即过


|