#include <iostream> #include <vector> using namespace std; // Hàm sàng nguyên tố - sử dụng Sieve of Eratosthenes để tìm tất cả các số nguyên tố <= n vector<int> sieve(int n) { vector<bool> is_prime(n + 1, true); vector<int> primes; is_prime[0] = is_prime[1] = false; // 0 và 1 không phải là số nguyên tố for (int i = 2; i <= n; i++) { if (is_prime[i]) { primes.push_back(i); // Nếu i là số nguyên tố, thêm vào danh sách for (int j = i * 2; j <= n; j += i) { is_prime[j] = false; // Đánh dấu các bội số của i là không phải số nguyên tố } } } return primes; // Trả về danh sách các số nguyên tố } // Hàm tìm và in các cặp (i, j) sao cho i + j = 5 void findPairsWithSum5(int n) { for (int i = 1; i <= n; i++) { for (int j = i; j <= n; j++) { if (i + j == 5) { cout << "(" << i << ", " << j << ")" << endl; } } } } int main() { int n; cout << "Nhập n: "; cin >> n; // Gọi hàm sàng nguyên tố và in kết quả vector<int> primes = sieve(n); cout << "Các số nguyên tố <= " << n << " là: "; for (int prime : primes) { cout << prime << " "; } cout << endl; // Tìm các cặp có tổng bằng 5 cout << "Các cặp (i, j) có tổng bằng 5 là: " << endl; findPairsWithSum5(n); return 0; }