#include <iostream> #include <vector> #include <cmath> using namespace std; const int MAX_SUM = 2000000; // Hàm sàng Eratosthenes để đánh dấu số nguyên tố vector<bool> sieve(int max_val) { vector<bool> is_prime(max_val + 1, true); is_prime[0] = is_prime[1] = false; for (int i = 2; i <= sqrt(max_val); ++i) { if (is_prime[i]) { for (int j = i * i; j <= max_val; j += i) { is_prime[j] = false; } } } return is_prime; } int count_valid_pairs(int L, int R) { // Khởi tạo mảng đánh dấu số nguyên tố vector<bool> is_prime = sieve(MAX_SUM); int count = 0; // Duyệt qua các giá trị của A từ L đến R for (int A = L; A <= R; ++A) { int total_sum = 0; // Duyệt qua các giá trị của B từ A đến R for (int B = A; B <= R; ++B) { total_sum += B; // Kiểm tra nếu tổng là số nguyên tố if (total_sum > MAX_SUM) break; // Nếu tổng vượt quá MAX_SUM, ngừng kiểm tra if (is_prime[total_sum]) { count++; } } } return count; } int main() { int L, R; cin >> L >> R; int result = count_valid_pairs(L, R); cout << result << endl; return 0; }