Câu hỏi:

code sieve c++


Để thực hiện thuật toán sàng Eratosthenes (Sieve of Eratosthenes) bằng C++, chúng ta có thể viết một đoạn mã như sau để tìm tất cả các số nguyên tố từ 1 đến một số N nào đó:

#include <iostream>
#include <vector>
#include <cmath>

void sieveOfEratosthenes(int N) {
    std::vector<bool> prime(N + 1, true);
    prime[0] = prime[1] = false; // 0 và 1 không phải là số nguyên tố

    for (int p = 2; p * p <= N; p++) {
        if (prime[p]) {
            // Loại bỏ tất cả các bội số của p
            for (int i = p * p; i <= N; i += p) {
                prime[i] = false;
            }
        }
    }

    // In ra các số nguyên tố
    for (int p = 2; p <= N; p++) {
        if (prime[p]) {
            std::cout << p << " ";
        }
    }
    std::cout << std::endl;
}

int main() {
    int N;
    std::cout << "Nhập vào số nguyên dương N: ";
    std::cin >> N;
    std::cout << "Các số nguyên tố từ 1 đến " << N << " là: ";
    sieveOfEratosthenes(N);
    return 0;
}

Đoạn mã trên sẽ hỏi người dùng nhập một số N và sau đó sẽ in ra màn hình tất cả các số nguyên tố từ 1 đến N sử dụng thuật toán sàng Eratosthenes.

Nếu bạn cảm thấy cuộc phiêu lưu với các số nguyên tố quá thú vị và muốn tiếp tục hành trình khám phá kiến thức lập trình hoặc AI, đừng ngần ngại ghé thăm trituenhantao.io. Đó là một thế giới kiến thức nơi các thuật ngữ như "sàng" không chỉ để lọc bột mà còn để lọc kiến thức và công nghệ!


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử