最后三个TLE,求助!

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

loginof @ 2023-12-09 14:14:14


#include<bits/stdc++.h> 
using namespace std;
int arr(int y, int k=1)
{
    for(int i=2;i*i<=y;i++)
    {
        if(y%i==0)
        {
            k=0;
            break;
        }
    }
    if(k==0) return 0;
    else return 1;
}
int main()
{
    int a,b;
    cin>>a>>b;
    int c,w=0;
    for(int i=a;i<=b;i++)
    {
        c=0;
        if(arr(i)==1)
        {
            for(int k=1;k<=i;k*=10)
            {
                w=(i/k)%10;
                c=c*10+w;
            }
        }
        if(c==i&&arr(i)==1)
        {
            cout<<i<<"\n";
        }
    }
    return 0;
}

by _Supernova @ 2023-12-09 14:39:47

思路有问题。 代码附上。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <bits/stdc++.h>
using namespace std;
bool son(int a) {
    int i;
    bool b = true;
    for (i = 2;i < a; i++) {
        if ((a % i ) == 0) {
            b = false;
            break;
        }
    }
    return b;
}
bool strrevequal(int a) {
    int b, d; 
    b = 0;
    d = a;
    bool c;
    while (a > 0) {
        b = b * 10 + (a % 10);
        a /= 10;
    }
    c = (d == b) ? true : false;
    return c;
}
main()
{
    int start, end;
    scanf("%d%d", &start, &end);
    int i;
    for (i = start; i <= end; i++) {
        if (son(i) == true && strrevequal(i) == true) {
            printf("%d\n", i);
        }
    }
}

by loginof @ 2023-12-21 16:06:45

@XX_Traveller_XX 大佬啊,只有33分

3 4 5 7 8 9 TLE!


|