[Buổi 8][Củng cố hàm][WS] Bài 1: Number Toolkit 1.0
Number Toolkit 1.0
Bối cảnh
Đây là sản phẩm tổng hợp của Module 02. Bạn cần xây một dịch vụ số học nhỏ có nhiều chức năng nhưng vẫn giữ main() dễ đọc.
Mỗi chức năng phải được đóng gói thành hàm độc lập. Khi một lệnh đến, main() chỉ đọc tham số, gọi hàm và in kết quả. Đây là bài luyện tổ chức code, không chỉ luyện thuật toán.
Yêu cầu
- Lệnh
1 a b: in GCD. - Lệnh
2 a b: in LCM. - Lệnh
3 n: inPRIMEhoặcNOT PRIME. - Lệnh
4 n: in số lượng ước dương. - Lệnh
5 n: in tổng các ước dương. - Lệnh
6 n: in tổng chữ số của|n|. - Lệnh
7 n: inPERFECThoặcNOT PERFECT. - Lệnh
0: kết thúc. - Mã khác: in
INVALID.
Yêu cầu tổ chức code
Phải tổ chức bằng các hàm độc lập. Không dùng mảng, vector hoặc STL container.
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 lệnh; 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 100 lệnh. |a|,|b|,|n| ≤ 10^10; với lệnh 4,5,7: n dương.
Ví dụ 1
Input
0
Output
Giải thích
Không có yêu cầu xử lý trước lệnh 0, nên chương trình không in gì.
Ví dụ 2
Input
1 48 18
2 12 18
0
Output
6
36
Giải thích
Lệnh 1 cho GCD(48,18)=6. Lệnh 2 cho LCM(12,18)=36. Hai kết quả được in trên hai dòng.
Thông tin học tập
- Module: M02
- Buổi: B08
- Loại bài: WORKSHOP
- Độ khó: Medium
- Concepts: function decomposition, code reuse, gcd, lcm, primality testing, divisor analysis, command processing
- Giới hạn kiến thức: B01-B08
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments