为什么全是WA啊 崩溃了

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

wvvvvvvvvvvvv @ 2024-03-23 08:45:02

#include<stdio.h>
#include <stdbool.h>
bool ispa(int x) //判断回文数
{
    int num[20];
    int n = 0;
    int i = 0;
    while (x > 0)
    {
        num[i] = x % 10;
        x /= 10;
        n++;
        i++;
    }
    if (num[i] == num[n - i])
        return true;
    else
        return false;
}
bool ispr(int x) //判断质数
{
    int i;
    int num = 0;
    for (i = 1; (i * i) <= x; i++)
    {
        num += (x % i == 0) ? 1 : 0;
    }
    if ((num - 1) == 0)
        return true;
    else
        return false;
}
int main() //主函数
{
    int a,b,i;
    bool pa = false;
    bool pr = false;
    scanf("%d %d", &a, &b);
    for (i = a; ((i % 2) != 0) && i <= b; i++)
    {
        pa = ispa(i);
        if (pa)
            pr = ispr(i);
        if (pr)
            printf("%d\n", i);
    }
    return 0;
}

by RockyChen @ 2024-03-23 08:51:11

不是哥们,你这个ispr函数写错了吧


by wvvvvvvvvvvvv @ 2024-03-25 19:29:51

@RockyChen OMG 我刚刚才看见 不好意思

bool ispr(int x) //判断质数
{
    int i;
    int num = 0;
    for (i = 1; (i * i) <= x; i++)
    {
        num += (x % i == 0) ? 1 : 0;
    }
    if ((num - 1) == 0)//除去1后判断有没有因数 是就返回true 否就返回false
        return true;
    else
        return false;

菜菜的我脑子已经晕了 已经看不出来问题了...


by RockyChen @ 2024-03-26 16:38:35

这下对了 @wvvvvvvvvvvvv


by wvvvvvvvvvvvv @ 2024-03-26 17:18:41

@RockyChen 我现在已经全AC了耶耶耶

发现了两个最重要的错误

第一个是回文数判断的时候忘记循环了

第二个是


for(i=a;((i%2)!=0)&&i<=b;i++)

如果a是偶数直接没进入循环 i也不会++

我好菜......


|