2026 - Tin Học Trẻ - Bảng B - Vòng Khu Vực Miền Nam - Bài 2: Số PP

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python
Điểm: 1800 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Xét một số nguyên dương và viết nó dưới dạng dãy chữ số \(s_1s_2 \dots s_k\) (với \(k\) là số chữ số, \(s_1\) là chữ số đầu tiên).

Số đó được gọi là số PP nếu với mọi vị trí \(i\), tổng của chữ số ở vị trí \(i\) và chữ số ở vị trí đối xứng \(k - i + 1\) là một số nguyên tố, tức là \(s_i + s_{k - i + 1}\) là số nguyên tố với mọi \(i\).

Ví dụ:

  • \(146\) không phải số PP vì \(s_1 + s_3 = 1 + 6 = 7\) là số nguyên tố (nhưng \(s_2 + s_2 = 4 + 4 = 8\) không phải).
  • \(215\) là số PP vì \(s_1 + s_3 = 2 + 5 = 7\) là số nguyên tố và \(s_2 + s_2 = 1 + 1 = 2\) cũng là số nguyên tố.
  • \(25\) là số PP vì \(s_1 + s_3 = 2 + 5 = 7\) là số nguyên tố.

Cho hai số nguyên \(l\) và \(r\), hãy đếm xem có bao nhiêu số PP trong đoạn \([l, r]\).

Input

  • Một dòng chứa hai số nguyên \(l\) và \(r\) \((1\le l,r\le 10^{15})\).

Output

  • In ra một số nguyên là số lượng số PP trong đoạn \([l, r]\).

Example

Test 1

Input
10 30
Output
10
Note

Các số PP là 11, 12, 14, 16, 20, 21, 23, 25, 29, 30 (đều có tổng hai chữ số là số nguyên tố). Ví dụ 13 không phải vì \(1 + 3 = 4\); 22 không phải vì \(2 + 2 = 4\).

Test 2

Input
100 200
Output
4
Note

Với số có 3 chữ số, chữ số giữa \(b\) ghép với chính nó nên cần \(b + b = 2b\) nguyên tố, chỉ đạt khi \(b = 1\). Trong đoạn \([100, 200]\) chữ số đầu là 1, nên cần \(1 + c\) nguyên tố: được 111, 112, 114, 116.

Scoring

  • Subtask \(1\) \((30\%\) số điểm\()\): \(1\le l,r\le 10^5\)
  • Subtask \(2\) \((30\%\) số điểm\()\): \(l=10^{k_1},r=10^{k_2}\) \((k_1\le k_2;k_1,k_2\in \N)\)
  • Subtask \(3\) \((40\%\) số điểm\()\): Không có ràng buộc gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.