奇怪了,怎么没输出呢?

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

yinbe @ 2023-01-06 10:54:03

#include<iostream>
using namespace std;
bool isPrime(int n)
{
    if(n<2)
    {
        return false;
    }
    if(n==2)
    {
        return true;
    }
    for(int i=2;i*i<n;i++)
    {
        if(n%i==0)
        {
            return false;
        }
    }
    return true;
}
bool huiwen(int n)
{
    int m=0;
    while(n)
    {
        m=m+n%10;
        n/=10;
        m*=10;      
    }
    m/=10;
    if(m==n)
    {
        return true;
    }
    else
    {
        return false;
    }
}
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    for(int i=a;i<=b;i++)
    {
        if(isPrime(i)&&huiwen(i))
        {
            printf("%d\n",i);
        }
    }
    return 0;
}

by jhdrgfj @ 2023-01-06 11:00:16

你的回文判断好像是错的


by Loser_Syx @ 2023-01-06 11:01:36

@LuYe0219 你回文判断那边,n已经为0了,再去和m比较,不就是不可能为真了吗,所以可以把n的值储存到另一个变量里,当翻转完一遍,判断m和那个变量是否相等就行了


by Loser_Syx @ 2023-01-06 11:02:16

@LuYe0219 而且质数判断也有点问题,那个for应该是i * i <= n


by WA_sir @ 2023-01-06 11:02:24

@LuYe0219

  1. for(int i=2;i*i<n;i++)改为i*i<=n

  2. "huiwen"函数重写,最后判断时 n 永远为 0


by yinbe @ 2023-01-07 21:58:10

现在可以了,但TLE了三个点测试记录

#include<iostream>
using namespace std;
bool isPrime(int n)
{
    if(n<2)
    {
        return false;
    }
    if(n==2)
    {
        return true;
    }
    for(int i=2;i*i<=n;i++)
    {
        if(n%i==0)
        {
            return false;
        }
    }
    return true;
}
bool huiwen(int n)
{
    int m=0,a=n;
    while(a)
    {
        m=m+a%10;
        a/=10;
        m*=10;      
    }
    m/=10;
    if(m==n)
    {
        return true;
    }
    else
    {
        return false;
    }
}
int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    for(int i=a;i<=b;i++)
    {
        if(isPrime(i)&&huiwen(i))
        {
            printf("%d\n",i);
        }
    }
    return 0;
}

by Lucas2024 @ 2023-01-25 15:42:23

你试试把回文判断改成构造回文数


by Lucas2024 @ 2023-01-25 15:46:58

@Saint_ying_xtf 或者

i<=sqrt(n)

by Loser_Syx @ 2023-01-26 08:06:08

@Lucas2023 @我干嘛,我又没问问题


|