Featured image of post 生成素数的C语言代码

生成素数的C语言代码

以下是一个简单的C语言代码,用于生成指定范围内的素数。在这个例子中,我们列举出1到n之间的素数。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <stdbool.h>

bool isPrime(int num) {
    if (num <= 1) return false;
    if (num <= 3) return true;
    if (num % 2 == 0 || num % 3 == 0) return false;
    
    for (int i = 5; i * i <= num; i += 6) {
        if (num % i == 0 || num % (i + 2) == 0) return false;
    }
    return true;
}

void printPrimes(int n) {
    printf("2 ");
    for (int i = 3; i <= n; i += 2) {
        if (isPrime(i)) {
            printf("%d ", i);
        }
    }
    printf("\n");
}

int main() {
    int n;
    printf("请输入生成素数范围的最大值: ");
    scanf("%d", &n);
    printf("1到%d的素数如下:\n", n);
    printPrimes(n);
    return 0;
}

这段代码的运行机制如下:

  1. isPrime函数:判断给定的数是否为素数。出于效率考虑,首先检查是否能被2和3整除,然后步长为6进行后续检查。
  2. printPrimes函数:输出指定范围内的素数。首先输出2,之后只检查奇数。
  3. main函数:接收用户输入的范围最大值,并输出该范围内的素数。

编译并运行此代码后,将会显示指定范围内的素数。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计