Bài kiểm tra số 6 - Ôn chuyên, HSG
Máy tính phân số
Nộp bàiPoint: 3
Mô tả: Xây dựng cấu trúc PhanSo gồm tử số và mẫu số. Hãy thực hiện các phép tính cộng, trừ, nhân, chia cho 2 phân số và in kết quả dưới dạng tối giản. Đặc biệt, chương trình phải xử lý được dấu âm (ví dụ mẫu số âm phải chuyển dấu lên tử) và rút gọn phân số sau mỗi phép tính.
Yêu cầu kỹ thuật:
Nạp chồng toán tử nhập >> và xuất << .
Nạp chồng các toán tử + , - , * , /.
Tự động rút gọn phân số khi khởi tạo hoặc sau khi tính toán.
Dữ liệu vào:
• Dòng duy nhất chứa 4 số nguyên a, b, c, d lần lượt là tử và mẫu của phân số thứ nhất, tử và mẫu của phân số thứ hai (b, d ‡ 0).
Giá trị: -10^9 <= a, b, c, d <= 10^9
Dữ liệu ra:
• 4 dòng lần lượt là kết quả của: Tổng, Hiệu, Tích, Thương.
Ví dụ:
Input:
1 2 3 4
Output:
5/4
-1/4
3/8
2/3
P - Ước
Nộp bàiPoint: 3
Mô tả: Một số nguyên dương X được gọi là Số P-Ước nếu số lượng các ước số dương của X là một số nguyên tố. Ví dụ:
Số 4 có các ước là {1, 2, 4}. Số lượng ước là 3 (là số nguyên tố) → 4 là số P-Ước.
Số 6 có các ước là {1, 2, 3, 6}. Số lượng ước là 4 (không phải số nguyên tố) → 6 không phải.
Số 12 có 6 ước (6 không phải nguyên tố) → Không phải.
Số 2 có 2 ước (2 là số nguyên tố) → Là số P-Ước.
Cho Q truy vấn, mỗi truy vấn gồm hai số nguyên L và R. Hãy đếm xem trong đoạn [L, R) có bao nhiêu số P-Ước.
Dữ liệu vào:
• Dòng đầu tiên chứa số nguyên Q (1 ≤ Q < 10^5) - số lượng truy vấn.
• Q dòng tiếp theo, mỗi dòng chứa hai số nguyên L, R (1 ≤ L ≤ R ≤ 10^6).
Dữ liệu ra:
• Với mỗi truy vấn, in ra số lượng số P-Ước trong đoạn [L, R] trên một dòng.
Ràng buộc:
Thời gian giới hạn: 1 giây.
Bộ nhớ giới hạn: 256MB.
Ví dụ:
Input:
3
1 10
4 4
10 20
Output:
6
1
5
Ô nhiều ước số nhất
Nộp bàiPoint: 4
Cho ma trận NxM. Hãy tìm ô (i, j) sao cho tổng giá trị của nó và 4 ô xung quanh là một số có nhiều ước số nhất. In ra số lượng ước số đó.
Đầu vào:
Dòng 1: N, M.
N dòng tiếp theo: Ma trận A.
Đầu ra:
Số lượng ước số lớn nhất tìm được của tổng các vùng 5 ô (dấu cộng).
Ràng buộc:
1 <= N, M <= 500
1 <= A[i][j] <= 10^4
Tổng giá trị vùng 5 ô có thể lên tới 5*10^4.
Ví dụ 1:
Input:
3 3
1 1 1
1 10 1
1 1 1
Output:
4
(Giải thích: Ô giữa có tổng vùng là 1+1+10+1+1 = 14. Ước của 14 là 1, 2, 7, 14 -> 4 ước)
Ví dụ 2:
Input:
3 3
2 2 2
2 2 2
2 2 2
Output:
4
(Giải thích: Tổng là 10. Ước của 10 là 1, 2, 5, 10 -> 4 ước)