第7个WA。,Unaccepted

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

lizishi @ 2024-04-19 18:42:11

#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int fun1(int n)
{
    return 1;
}
int fun2(int n)
{
    if(n%11==0) return 1;
    else return 0;
}
int fun3(int n)
{
    if(n/100==n%10) return 1;
    else return 0;
}
int fun4(int n)
{
    int cnt=0;
    if(n/1000==n%10) cnt++;
    if(n/100%10==n/10%10) cnt++;
    return cnt/2;
}
int fun5(int n)
{
    int cnt=0;
    if(n/10000==n%10) cnt++;
    if(n/1000%10==n/10%10) cnt++;
    return cnt/2;
}
int fun6(int n)
{
    int cnt=0;
    if(n/100000==n%10) cnt++;
    if(n/10000%10==n/10%10) cnt++;
    if(n/1000%10==n/100%10) cnt++;
    return cnt/3;
}
int fun7(int n)
{
    int cnt=0;
    if(n/1000000==n%10) cnt++;
    if(n/100000%10==n/10%10) cnt++;
    if(n/10000%10==n/100%10) cnt++;
    return cnt/3;
}
int fun8(int n)
{
    int cnt=0;
    if(n/10000000==n%10) cnt++;
    if(n/1000000%10==n/10%10) cnt++;
    if(n/100000%10==n/100%10) cnt++;
    if(n/10000%10==n/1000%10) cnt++;
    return cnt/4;
}
int fun9(int n)
{
    return 0;
}
int fun(int n)
{
    int dig=floor(log10(n))+1;
    if(dig==1) return fun1(n);
    if(dig==2) return fun2(n);
    if(dig==3) return fun3(n);
    if(dig==4) return fun4(n);
    if(dig==5) return fun5(n);
    if(dig==6) return fun6(n);
    if(dig==7) return fun7(n);
    if(dig==8) return fun8(n);
    if(dig==9) return fun9(n);
}
int prime(int n)
{
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i) continue;
        return 0;
    }
    return 1;
}
int main()
{
    int a,b;
    cin>>a>>b;
    for(int i=a;i<=b;i++)
    {
        if(prime(i)&&fun(i)) cout << i << endl;
        if((int(floor(log10(i)))%2)&&(i!=10)) i=pow(10,int(floor(log10(i)))+1);
    }
    return 0;
}

by laoqiu_tyxx @ 2024-04-23 16:37:43

AC代码:

#include <bits/stdc++.h>
using namespace std;
bool sushu(int n)
{
    int j;
    for(j=2;j*j<=n;j++)
    {
        if(n%j==0)
            return false ;
    }
    return true;
}
bool huiwen(int n)
{
    int y=0,x=n;
    while(x)
    {
        y=y*10+x%10;
        x/=10;
    }
    if(y==n)
    {
        return true;
    }
    return false;
}
int main()
{
    int i,j,a,b;
    cin>>a>>b;
    for(i=a;i<=b;i++)
    {
        if (i % 2 == 0) {
            continue;
        }
        if(huiwen(i))
        {

            if(sushu(i))
            {
                cout<<i<<endl;
            }
        }
    }
}

|