c语言用数组和函数求100以内的素数

要用C语言编写程序来找出100以内的所有素数,可以结合使用数组和函数来实现。以下是详细的步骤和示例代码:

实现步骤:

  1. 定义素数判定函数

    • 编写一个函数,用于判断一个数是否为素数。素数(质数)是大于1,并且除了1和它本身外没有其他因数的数。
    c
    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; // 否则是素数 }
  2. 使用数组存储素数

    • 创建一个足够大的数组来存储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++; } } }
  3. 调用函数并输出结果

    • 在主函数中调用 findPrimes 函数来填充素数数组,并输出结果。
    c
    int 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以内的所有素数,并将它们存储在数组中。