大佬们能不能帮忙看一下我的思路哪里出现了问题QAQ
查看原帖
大佬们能不能帮忙看一下我的思路哪里出现了问题QAQ
1300157
wvvvvvvvvvvvv楼主2024/3/25 18:30
#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 -1- i])//判断回文数 是就返回true 不是就返回false
        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)//除去1后判断有没有因数 是就返回true 否就返回false
        return true;
    else
        return false;
}
int main() //主函数
{
    int a, b, i;
    bool pa = false;//初始化pa pr为false
    bool pr = false;
    scanf_s("%d %d", &a, &b);
    for (i = a; ((i % 2) != 0) && i <= b; i++)//偶数一定不是质数,缩小范围(a一定大于等于5 所以不需要考虑2)
    {
        pa = ispa(i);//判断回文数
        if (pa)//是回文数就再判断是不是质数
            pr = ispr(i);
        if (pr)//是质数就输出
            printf("%d\n", i);
        pa = false;//重置pa和pr
        pr = false;
    }
    return 0;
}
2024/3/25 18:30
加载中...