首页 > 私募基金 > 管家婆特马免费资料大全 ■『玩法介绍→科普盘点』
2025
03-27

管家婆特马免费资料大全 ■『玩法介绍→科普盘点』

使用筛法(Sieve of Eratosthenes)可以高效地找出一定范围内的所有素数(质数)。筛法的基本思想是从小到大遍历数字,并标记掉其所有的倍数,最终剩下的未被标记的数字即为素数。以下是用 C 语言实现筛法求素数的示例代码:

C++
#include <stdio.h>
#include <stdbool.h>

void sieveOfEratosthenes(int n) {
    bool isPrime[n + 1];
    
    // 初始化数组,假定所有数字都是素数
    for (int i = 2; i <= n; i++) {
  &2024新澳门跑狗图今晚管家婆网站 nbsp;     isPrime[i] = true;
    }
    
    // 筛掉倍数
    for (int i = 2; i * i <= n; i++) {
        if (isPrime[i]) {
            for (int j = i * i; j <= n; j += i) {
                isPrime[j] = false;
            }
        }
    }
    
    // 打印素数
    printf("在区间 [2, %d] 内的素数有:\\n", n);
    for (int i = 2; i <= n; i++) {
        if (isPrime[i]) {
            printf("%d ", i);
        }
    }
    printf("\\n");
}

int main() {
    int limit;
    
    printf("请输入一个正整数作为上限:");
    scanf("%d", &limit);
    
    sieveOfEratosthenes(limit);
    
    return 0;
}

在这段代码中, 澳门彩246开彩结果94cc2025年新澳门天天开奖大全 函数使用数组 来标记每个数字是否为素数。首先将所有数字初始化为素数,然后从 2 开始遍历,如果当前数字是素数,则将其所有倍数标记为非素数。最后,遍历一遍数组,输出标记为素数的数字。

这段代码可以找出指定范围内的所有素数,运用了筛法的基本思想。请注意,筛法的时间复杂度是 O(n log log n),因此在实际应用中可以高效地找出大范围内的素数。