BÀI TẬP HSG 9

Số siêu nguyên tố

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 10


💥 Tên bài: Số siêu nguyên tố

Một số nguyên dương n được gọi là số siêu nguyên tố nếu:

  • n là số nguyên tố, và
  • Khi lần lượt bỏ bớt từng chữ số tận cùng bên phải (tạo ra các số mới), tất cả các số tạo thành cũng là số nguyên tố.
🔍 Ví dụ:
  • 317 là số siêu nguyên tố vì:
    • 317 là nguyên tố
    • 31 là nguyên tố
    • 3 là nguyên tố
  • 61 không là số siêu nguyên tố vì:
    • 61 là nguyên tố
    • nhưng 6 không phải là nguyên tố

📥 Input:
  • Một dòng duy nhất chứa số nguyên dương n (1 < n < ~10^6~)
📤 Output:
  • In ra PHAI nếu n là số siêu nguyên tố
  • In ra KHONG nếu n không phải là số siêu nguyên tố

📌 Ví dụ Input 1:
317
📌 Ví dụ Output 1:
PHAI
📌 Ví dụ Input 2:
61
📌 Ví dụ Output 2:
KHONG


Liệt kê số nguyên tố đối xứng 1

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 10


Đề bài:

Một số nguyên tố ~ p ~ được gọi là nguyên tố đối xứng nếu khi đảo ngược chữ số của ~ p ~, ta vẫn thu được một số nguyên tố.

Ví dụ:

  • 79 → đảo ngược thành 97 → đều là số nguyên tố
  • 13 → đảo ngược thành 31 → đều là số nguyên tố

Yêu cầu: Liệt kê tất cả các số nguyên tố đối xứng trong khoảng từ 1 đến ~ n ~ theo thứ tự tăng dần.


Input:
  • Một số nguyên dương ~ n ~ (~ 1 \le n \le 1{,}000{,}000 ~).

Output:
  • In ra các số nguyên tố đối xứng tìm được, theo thứ tự tăng dần, các số cách nhau bởi dấu cách.

Ví dụ
Input
100
Output
2 3 5 7 11 13 17 31 37 71 73 79 97


Xâu không lặp dài nhất

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 10


Tên bài: ROBOTCHAR - Robot nhặt ký tự

Đề bài:

Một con robot di chuyển từ trái sang phải trên một xâu ký tự S (chỉ gồm các chữ cái in hoa). Mỗi khi gặp một ký tự, robot sẽ nhặt ký tự đó nếu nó chưa từng nhặt trước đó.

Nhiệm vụ của bạn là tính số lượng ký tự không lặp dài nhất mà robot nhặt được trên đoạn liên tiếp

Input:
  • Một dòng duy nhất chứa chuỗi S (1 ≤ |S| ≤ ~10^4~, chỉ gồm ký tự in hoa).
Output:
  • Một số nguyên duy nhất là Số lượng ký tự không lặp dài nhất mà robot nhặt được trên đoạn liên tiếp.
Ví dụ:
Input:
ABACDE

Output:
5
Input:
ACDACBCAD

Output:
5


Tìm K thỏa dãy số

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 10


Tên bài: Tổng các số tự nhiên liên tiếp

Đề bài

Cho số nguyên dương ~ n ~, tìm số nguyên dương ~ k ~ lớn nhất sao cho:

~ S_k = 1 + 2 + 3 + \dots + k \leq n ~

Dữ liệu vào
  • Dòng đầu ghi số nguyên dương ~ T ~ là số bộ test.
  • ~ T ~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~ n ~.
Dữ liệu ra
  • Với mỗi bộ test, ghi ra trên một dòng số nguyên dương ~ k ~ mà ~ S_k \leq n ~.
Input mẫu
2
1
17
Output mẫu
1
5
Giới hạn
  • sub1: ~ 1 \leq T \leq 10^3 ~, - ~ 1 \leq n \leq 10^3 ~
  • sub2: ~ 1 \leq T \leq 10^3 ~, - ~ 1 \leq n \leq 10^8 ~
  • Sub3: ~ 1 \leq T \leq 10^6 ~, ~ 1 \leq n \leq 10^{12} ~


Đếm số dãy con liên tiếp có tổng bằng 0

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 10


Bài toán: Đếm số dãy con có tổng bằng 0

Mô tả:

Trong tiết học hôm nay, thầy Alex giảng về các dãy số có tổng các phần tử bằng ~0~. Để giúp Bob - học sinh xuất sắc nhất lớp, thầy đưa ra bài toán:

Cho một dãy số nguyên ~A~ gồm ~N~ phần tử, hãy tính số lượng dãy con liên tiếp khác rỗng của ~A~ mà tổng các phần tử bằng ~0~.

  • Một dãy con liên tiếp được coi là khác nhau nếu chúng có ít nhất một vị trí khác biệt.

Input:
  • Dòng thứ nhất ghi số nguyên dương ~N~ là số lượng phần tử trong dãy ~A~ ~(1 \leq N \leq 2 \times 10^5)~.
  • Dòng thứ hai chứa ~N~ số nguyên ~A_1, A_2, \dots, A_N~ ~(-10^9 \leq A_i \leq 10^9)~.

Output:
  • In ra một số nguyên là số lượng các dãy con liên tiếp khác rỗng có tổng bằng ~0~.

Ràng buộc:
  • ~1 \leq N \leq 2 \times 10^5~.
  • ~-10^9 \leq A_i \leq 10^9~.
  • Tất cả dữ liệu đều là số nguyên.

Ví dụ:
Input:
6
-6 0 1 2 3 -6
Output:
4

Giải thích:

  • Các dãy con liên tiếp có tổng bằng ~0~ là:
    • ~[-6, 0, 1, 2, 3, -6]~,
    • ~[0]~,
    • ~[1, 2, 3, -6]~,
    • ~[-6, 0, 1, 2, 3]~.