📜  C测验– 103 |问题4(1)

📅  最后修改于: 2023-12-03 15:14:25.793000             🧑  作者: Mango

C测验-103 | 问题4

本测验是对C语言基础知识的考察。本题让我们编写一个简单的程序,判断一个数是否为素数。

素数的定义

素数是一种只能被1和本身整除的正整数。

编程思路

要判断一个数是否为素数,我们需要从2开始到这个数的平方根来遍历,判断是否有其他整数能够整除该数。如果没有,则该数为素数。

代码实现

下面是一个判断素数的函数实现代码片段。

#include <stdio.h>
#include <math.h>

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

int main() {
    int num;
    printf("请输入一个正整数:");
    scanf("%d", &num);
    if (isPrime(num)) {
        printf("%d是素数\n", num);
    } else {
        printf("%d不是素数\n", num);
    }

    return 0;
}

该函数首先判断输入的数是否小于2,如果是,则不是素数。如果输入的数是2,那么直接返回1,因为2是素数。接着,我们从2开始到该数的平方根遍历,并判断是否有其他整数能够整除该数。如果能够整除,则返回0,否则返回1表示该数是素数。

在main函数中,我们先读入一个数,然后通过isPrime函数判断该数是否为素数,并输出判断结果。

总结

判断一个数是否为素数并不难,只需要从2开始到该数的平方根遍历,判断是否有其他整数能够整除该数。稍加思考和实现,就可以写出上述代码。但是对于现实中的巨大素数,该方法并不可行。这时我们需要利用更加高效的算法,比如Miller-Rabin素性测试算法。