c语言用数组和函数求100以内的素数
要用C语言编写程序来找出100以内的所有素数,可以结合使用数组和函数来实现。以下是详细的步骤和示例代码:
实现步骤:
定义素数判定函数:
- 编写一个函数,用于判断一个数是否为素数。素数(质数)是大于1,并且除了1和它本身外没有其他因数的数。
cint isPrime(int num) { if (num <= 1) { return 0; // 小于等于1的数不是素数 } for (int i = 2; i * i <= num; i++) { if (num % i == 0) { return 0; // 如果能整除,则不是素数 } } return 1; // 否则是素数 }
使用数组存储素数:
- 创建一个足够大的数组来存储100以内的素数。遍历所有数,调用素数判定函数,将素数存入数组中。
c#define MAX 100 void findPrimes(int primes[]) { int count = 0; for (int i = 2; i < MAX; i++) { if (isPrime(i)) { primes[count] = i; count++; } } }
调用函数并输出结果:
- 在主函数中调用
findPrimes
函数来填充素数数组,并输出结果。
cint main() { int primes[MAX]; findPrimes(primes); printf("Prime numbers up to %d:\n", MAX); for (int i = 0; i < MAX && primes[i] != 0; i++) { printf("%d ", primes[i]); } printf("\n"); return 0; }
- 在主函数中调用
完整示例代码:
c#include <stdio.h>
#define MAX 100
int isPrime(int num) {
if (num <= 1) {
return 0; // 小于等于1的数不是素数
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0; // 如果能整除,则不是素数
}
}
return 1; // 否则是素数
}
void findPrimes(int primes[]) {
int count = 0;
for (int i = 2; i < MAX; i++) {
if (isPrime(i)) {
primes[count] = i;
count++;
}
}
}
int main() {
int primes[MAX] = {0}; // 初始化为0
findPrimes(primes);
printf("Prime numbers up to %d:\n", MAX);
for (int i = 0; i < MAX && primes[i] != 0; i++) {
printf("%d ", primes[i]);
}
printf("\n");
return 0;
}
解释:
isPrime函数:该函数接收一个整数参数,返回1(真)表示该数是素数,返回0(假)表示不是素数。使用试除法(从2开始试除到平方根)来判断素数。
findPrimes函数:该函数用来填充一个传入的数组,将100以内的素数存储其中。
主函数main:在主函数中调用
findPrimes
函数,生成素数数组,并打印输出结果。
通过以上步骤和示例代码,你可以成功地使用C语言找出100以内的所有素数,并将它们存储在数组中。