📅  最后修改于: 2023-12-03 15:14:26.266000             🧑  作者: Mango
一个素数,也叫质数,是一个大于1且只能被1和它本身整除的自然数。在计算机科学和数学中,找到素数以及判断一个数是否为素数是一个重要的任务。
本文将介绍如何使用 C 程序来判断一个数组中的数是否为素数。
#include <stdio.h>
int isPrime(int number) {
if (number < 2) { // 1和0不是素数
return 0;
}
for (int i = 2; i < number; i++) { // 从2到number-1判断是否有能整除number的数
if (number % i == 0) { // 如果能被整除就不是素数
return 0;
}
}
return 1; // 如果后面的数都不能整除number,说明number是素数
}
int main() {
int numArray[10] = {2, 7, 11, 13, 17, 19, 20, 21, 23, 29}; // 初始化一个数组
int len = sizeof(numArray) / sizeof(numArray[0]); // 计算数组长度
for (int i = 0; i < len; i++) { // 遍历数组中所有的数
int number = numArray[i];
if (isPrime(number)) { // 如果是素数就打印出来
printf("%d is a prime number.\n", number);
}
}
return 0;
}
int isPrime(int number) {
if (number < 2) { // 1和0不是素数
return 0;
}
for (int i = 2; i < number; i++) { // 从2到number-1判断是否有能整除number的数
if (number % i == 0) { // 如果能被整除就不是素数
return 0;
}
}
return 1; // 如果后面的数都不能整除number,说明number是素数
}
判断一个数是否为素数的方法很简单,只需要从2到这个数的平方根依次判断是否能被整除即可。但是这里我们使用的是从2到这个数减1的方法,这是因为程序使用的是整型变量,可能会导致平方根的精度问题而出错。
我们在函数中传入一个数,并从2到这个数减1判断是否能被整除,最终返回1表示是素数,0表示不是素数。
int main() {
int numArray[10] = {2, 7, 11, 13, 17, 19, 20, 21, 23, 29}; // 初始化一个数组
int len = sizeof(numArray) / sizeof(numArray[0]); // 计算数组长度
for (int i = 0; i < len; i++) { // 遍历数组中所有的数
int number = numArray[i];
if (isPrime(number)) { // 如果是素数就打印出来
printf("%d is a prime number.\n", number);
}
}
return 0;
}
我们先初始化了一个包含10个随机数的数组,然后计算出这个数组的长度。接下来我们使用for循环来遍历这个数组,对于每一个数,我们都判断一下它是否为素数,如果是素数就输出一条信息。
这是一个简单的 C 程序,但它展示了如何使用 C 语言来判断一个数是否为素数,并遍历一个数组来找出其中的素数。希望这篇文章对你有所启发!