[Buổi 8][Củng cố hàm][ADV] Bài 1: Bảng lệnh số học tổng hợp
Bảng lệnh số học tổng hợp
Bối cảnh
Một hệ thống chấm bài nội bộ cần xử lý một chuỗi yêu cầu số học khác nhau mà không được lưu toàn bộ dữ liệu. Mỗi lệnh được xử lý ngay khi đọc.
Đây là bài Advanced của Module 02: độ khó đến từ việc phối hợp nhiều hàm và giữ cấu trúc code rõ ràng, không phải từ một thuật toán mới.
Yêu cầu
- Lệnh
1 a b c: in GCD của ba số. - Lệnh
2 n: in số nguyên tố nhỏ nhất không nhỏ hơn n. - Lệnh
3 n: inYESnếu n có đúng 3 ước dương, ngược lạiNO. - Lệnh
4 n: in tổng các ước dương của n. - Lệnh
5 n: inPERFECThoặcNOT PERFECT. - Lệnh
0: kết thúc. - Mã khác:
INVALID.
Yêu cầu tổ chức code
Giữ main() ở vai trò điều phối. Mỗi thuật toán là một hàm riêng và không dùng mảng/vector.
Lưu ý: Online Judge chủ yếu kiểm tra tính đúng của output. Yêu cầu tổ chức code được dùng để rèn đúng kỹ năng của buổi học và sẽ được giảng viên quan sát khi chữa bài.
Input
Nhiều dòng; dòng cuối là 0.
Output
Mỗi lệnh khác 0 tạo một dòng output.
Ràng buộc
Tối đa 50 lệnh. Với lệnh 2: -10^6 ≤ n ≤ 10^9; các lệnh khác dùng 1 ≤ n ≤ 10^10.
Ví dụ 1
Input
0
Output
Giải thích
Không có lệnh trước 0 nên không có output.
Ví dụ 2
Input
1 12 18 30
0
Output
6
Giải thích
GCD của 12, 18 và 30 là 6; output là 6.
Thông tin học tập
- Module: M02
- Buổi: B08
- Loại bài: ADVANCED
- Độ khó: Hard
- Concepts: function decomposition, command processing, code reuse, number theory utilities
- Giới hạn kiến thức: B01-B08
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments