C语言找出100-900之间的无暇素数案例

程序设计

找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是个素数,311也是个素数,113就是无暇素数。

编程思路

定义两个函数:isPrime用于判断一个数是否为素数,reverseNumber用于将一个数逆序。

isPrime函数通过遍历从2到根号下num的数,判断num是否能被这些数整除来判断num是否为素数。如果存在能整除num的数,则num不是素数,返回0;否则,num是素数,返回1。

reverseNumber函数通过循环取num的个位数并逐步构建逆序数。

在主函数main中,我们遍历100到900之间的数,对于每个数,判断它是否为素数且其逆序数也是素数。如果满足条件,则输出该数。

源代码:

#include <stdio.h>

int isPrime(int num) {
    if (num <= 1) {
        return 0;
    }
    
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return 0;
        }
    }
    
    return 1;
}

int reverseNumber(int num) {
    int reverse = 0;
    
    while (num > 0) {
        reverse = reverse * 10 + num % 10;
        num /= 10;
    }
    
    return reverse;
}

int main() {
    printf("无暇素数:\n");
    
    for (int num = 100; num <= 900; num++) {
        if (isPrime(num) && isPrime(reverseNumber(num))) {
            printf("%d\n", num);
        }
    }
    
    return 0;
}

运行截图

图片[1]-C语言找出100-900之间的无暇素数案例-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞12赞赏 分享