Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<math.h>
- 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);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement