[Buổi 7][Hàm số học][WS] Bài 1: Number Toolkit Lite
Number Toolkit Lite
Bối cảnh
Bạn đã có nhiều thuật toán số học độc lập. Bây giờ hãy gom chúng thành một bộ công cụ nhỏ, mỗi tính năng được đóng gói bằng một hàm riêng.
Online Judge gửi nhiều lệnh. Chương trình cần đọc lệnh, gọi đúng hàm và in kết quả. Mỗi chức năng nên được test độc lập trước khi tích hợp.
Yêu cầu
- Lệnh
1 a b: in GCD của a và b. - Lệnh
2 a b: in LCM không âm của a và b; nếu một số bằng 0, LCM bằng 0. - Lệnh
3 n: inPRIMEhoặcNOT PRIME. - Lệnh
4 n: in số lượng ước dương của n (n > 0). - Lệnh
5 n: in tổng chữ số của trị tuyệt đối của n. - Lệnh
0: kết thúc. - Mã khác: in
INVALID.
Yêu cầu tổ chức code
Tạo các hàm độc lập gcdEuclid, lcmValue, isPrime, countDivisors, sumDigits.
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 chỉ chứa 0.
Output
Mỗi lệnh khác 0 tạo một dòng output.
Ràng buộc
Không quá 100 lệnh. |a|,|b|,|n| ≤ 10^12; với lệnh 4, n > 0.
Ví dụ 1
Input
0
Output
Giải thích
Không có lệnh xử lý, chương trình gặp 0 và kết thúc ngay nên không có output.
Ví dụ 2
Input
1 48 18
0
Output
6
Giải thích
Lệnh 1 48 18 yêu cầu GCD. GCD của 48 và 18 bằng 6, nên output là 6.
Thông tin học tập
- Module: M02
- Buổi: B07
- Loại bài: WORKSHOP
- Độ khó: Medium
- Concepts: function decomposition, gcd, lcm, primality testing, divisor counting, digit sum
- Giới hạn kiến thức: B01-B07
- Time limit: 2 second(s)
- Memory limit: 256 MB
- Point: 100
Comments