Untitled

 avatar
unknown
plain_text
a year ago
777 B
3
Indexable
#include <iostream>
#include <vector>

void sieveOfEratosthenes(std::vector<bool> &isPrime, int n) {
    isPrime[0] = isPrime[1] = false;
    for (int p = 2; p * p <= n; p++) {
        if (isPrime[p]) {
            for (int i = p * p; i <= n; i += p) {
                isPrime[i] = false;
            }
        }
    }
}

int main() {
    int limit = 10000000;
    std::vector<bool> isPrime(limit + 1, true);
    
    sieveOfEratosthenes(isPrime, limit);

    std::vector<int> primeNumbers;
    for (int i = 2; i <= limit; i++) {
        if (isPrime[i]) {
            primeNumbers.push_back(i);
        }
    }

    std::cout << "Các số nguyên tố nhỏ hơn 10,000,000 là: ";
    for (int prime : primeNumbers) {
        std::cout << prime << " ";
    }

    return 0;
}