📅  最后修改于: 2023-12-03 15:14:25.793000             🧑  作者: Mango
本测验是对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素性测试算法。