回文素数

素数判断函数:

定义一个函数,接收一个整数作为参数,在函数内部,从2开始到该数的平方根(取整),依次用取余运算判断能否整除当前参数,如果都不能整除,返回 true,表示是素数,否则返回 false。

回文数判断函数:

可以采用两种方式,一种是将整数先转换为字符串,然后利用双指针(一个指向字符串开头,一个指向末尾)同时向中间移动,比较对应字符是否相等,如果都相等则是回文数;另一种是不借助字符串,通过数学运算,不断取出原数的末尾数字,构建出反转后的数字,最后对比原数和反转后的数字是否相等来判断是否为回文数。这里以第二种方式举例。

定义一个函数,接收一个整数作为参数,先处理特殊情况(如负数等),然后利用循环取出末尾数字构建反转数,最后比较原数和反转数是否相等,相等则返回 true,表示是回文数,否则返回 false。

代码#include
#include
using namespace std;

// 判断是否为素数的函数
bool isPrime(int num) {
    if (num < 2) return false;
    for (int i = 2; i <= sqrt(num); ++i) {
        if (num % i == 0) return false;
    }
    return true;
}

// 判断是否为回文数的函数
bool isPalindrome(int num) {
    int original = num;
    int reversed = 0;
    while (num > 0) {
        reversed = reversed * 10 + num % 10;
        num /= 10;
    }
    return original == reversed;
}

int main() {
    int start, end;
    cout << "请输入起始整数: ";
    cin >> start;
    cout << "请输入结束整数: ";
    cin >> end;
    cout << "在 " << start << " 到 " << end << " 范围内既是素数又是回文数的有: ";
    for (int n = start; n <= end; ++n) {
        if (isPrime(n) && isPalindrome(n)) {
            cout << n << " ";
        }
    }
    cout << endl;
    return 0;
}
全部评论

相关推荐

安静的垂耳兔在泡澡:ks已经第八次投递了,它起码挂了还让你再投,不错了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务