计算素数个数的算法有很多种,不同的算法效率也不同。但是目前最快的算法之一是埃拉托斯特尼筛法(Sieve of Eratosthenes),它可以在O(nloglogn)的时间复杂度内计算出n以内的所有素数。

以下是一个用C语言实现埃拉托斯特尼筛法的代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int count_primes(int n) {
    if (n < 2) {
        return 0;
    }

    bool *is_prime = (bool *) mall

更多推荐