#include #include using namespace std; // hàm kiểm tra số nguyên tố bool snt(int n) { // tính căn bậc 2 của n int sqrt_n = sqrt(n); // nếu n < 2 return false if (n < 2) return false; // i chạy từ 2 đến căn bậc 2 của n, chỉ cần n % i bằng 0 với i bất kì thì đây không phải số nguyên tố => false for (int i = 2; i <= sqrt_n; i++) { if (n % i == 0) return false; } // nếu chạy được tới đây tức là không có i nào để n % i bằng 0 cả. vậy là số nguyên tố => true return true; } // tính tổng n số nguyên sô tố đầu tiên // value là giá trị hiện tại cần xét có phải nguyên tố không // count là số số nguyên tố đã tìm được từ 0 đến value // n là số số nguyên tố cần tính tổng int sum(int value, int count, int n) { // nếu số số nguyên tố hiện tại đã bằng số số nguyên tố cần tìm thì trả về 0 if (count == n) return 0; // kiểm tra value có phải nguyên tố không, nếu phải thì tổng với các số đã tìm được trước đó và các số tiếp theo // đồng thời tăng count lên vì ta mới tìm đc thêm 1 số nữa if (snt(value)) { // in value ra để xem tìm được những số nguyên tố nào cout << value << endl; return value + sum(value + 1, count + 1, n); } else { return sum(value + 1, count, n); } } void main() { // in va tinh tong 10 so nguyen to dau tien cout << sum(0, 0, 10); }