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ệ!